mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
Auto-generate Makefile with dependencies.
This commit is contained in:
parent
2f6017511f
commit
8eb9921c7c
@ -18,6 +18,10 @@
|
|||||||
<release-item>
|
<release-item>
|
||||||
<p>Split log levels into separate header file. Many modules that use <code>debug.h</code> do not need to do logging so this reduces dependencies for those modules.</p>
|
<p>Split log levels into separate header file. Many modules that use <code>debug.h</code> do not need to do logging so this reduces dependencies for those modules.</p>
|
||||||
</release-item>
|
</release-item>
|
||||||
|
|
||||||
|
<release-item>
|
||||||
|
<p>Auto-generate Makefile with dependencies.</p>
|
||||||
|
</release-item>
|
||||||
</release-development-list>
|
</release-development-list>
|
||||||
</release-core-list>
|
</release-core-list>
|
||||||
</release>
|
</release>
|
||||||
|
153
src/Makefile
153
src/Makefile
@ -112,15 +112,156 @@ OBJS=$(SRCS:.c=.o)
|
|||||||
pgbackrest: $(OBJS)
|
pgbackrest: $(OBJS)
|
||||||
$(CC) -o pgbackrest $(OBJS) $(LDFLAGS)
|
$(CC) -o pgbackrest $(OBJS) $(LDFLAGS)
|
||||||
|
|
||||||
postgres/pageChecksum.o:
|
|
||||||
$(CC) $(CFLAGS) -funroll-loops -ftree-vectorize -c postgres/pageChecksum.c -o postgres/pageChecksum.o
|
|
||||||
|
|
||||||
.c.o:
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
# Installation. DESTDIR can be used to modify the install location.
|
# Installation. DESTDIR can be used to modify the install location.
|
||||||
####################################################################################################################################
|
####################################################################################################################################
|
||||||
install: pgbackrest
|
install: pgbackrest
|
||||||
install -d $(DESTDIR)/usr/bin
|
install -d $(DESTDIR)/usr/bin
|
||||||
install -m 755 pgbackrest $(DESTDIR)/usr/bin
|
install -m 755 pgbackrest $(DESTDIR)/usr/bin
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# Compile rules
|
||||||
|
####################################################################################################################################
|
||||||
|
cipher/block.o: cipher/block.c cipher/block.h cipher/cipher.h cipher/random.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c cipher/block.c -o cipher/block.o
|
||||||
|
|
||||||
|
cipher/cipher.o: cipher/cipher.c cipher/cipher.h common/debug.h common/log.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c cipher/cipher.c -o cipher/cipher.o
|
||||||
|
|
||||||
|
cipher/random.o: cipher/random.c cipher/random.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c cipher/random.c -o cipher/random.o
|
||||||
|
|
||||||
|
command/archive/common.o: command/archive/common.c command/archive/common.h common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h common/wait.h postgres/version.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c command/archive/common.c -o command/archive/common.o
|
||||||
|
|
||||||
|
command/archive/get/get.o: command/archive/get/get.c command/archive/common.h command/command.h common/assert.h common/debug.h common/error.auto.h common/error.h common/fork.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/regExp.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h common/wait.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h perl/exec.h postgres/info.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c command/archive/get/get.c -o command/archive/get/get.o
|
||||||
|
|
||||||
|
command/archive/push/push.o: command/archive/push/push.c command/archive/common.h command/command.h common/debug.h common/error.auto.h common/error.h common/fork.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h common/wait.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h perl/exec.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c command/archive/push/push.c -o command/archive/push/push.o
|
||||||
|
|
||||||
|
command/command.o: command/command.c common/assert.h common/debug.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c command/command.c -o command/command.o
|
||||||
|
|
||||||
|
command/help/help.o: command/help/help.c common/assert.h common/debug.h common/error.auto.h common/error.h common/io/handle.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c command/help/help.c -o command/help/help.o
|
||||||
|
|
||||||
|
common/debug.o: common/debug.c common/debug.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/debug.c -o common/debug.o
|
||||||
|
|
||||||
|
common/encode.o: common/encode.c common/debug.h common/encode.h common/encode/base64.h common/error.auto.h common/error.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/encode.c -o common/encode.o
|
||||||
|
|
||||||
|
common/encode/base64.o: common/encode/base64.c common/debug.h common/encode/base64.h common/error.auto.h common/error.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/encode/base64.c -o common/encode/base64.o
|
||||||
|
|
||||||
|
common/error.o: common/error.c common/error.auto.c common/error.auto.h common/error.h common/logLevel.h common/stackTrace.h
|
||||||
|
$(CC) $(CFLAGS) -c common/error.c -o common/error.o
|
||||||
|
|
||||||
|
common/exit.o: common/exit.c command/command.h common/debug.h common/error.auto.h common/error.h common/exit.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h perl/exec.h
|
||||||
|
$(CC) $(CFLAGS) -c common/exit.c -o common/exit.o
|
||||||
|
|
||||||
|
common/fork.o: common/fork.c common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/fork.c -o common/fork.o
|
||||||
|
|
||||||
|
common/ini.o: common/ini.c common/debug.h common/error.auto.h common/error.h common/ini.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c common/ini.c -o common/ini.o
|
||||||
|
|
||||||
|
common/io/handle.o: common/io/handle.c common/debug.h common/error.auto.h common/error.h common/io/handle.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h
|
||||||
|
$(CC) $(CFLAGS) -c common/io/handle.c -o common/io/handle.o
|
||||||
|
|
||||||
|
common/lock.o: common/lock.c common/assert.h common/debug.h common/error.auto.h common/error.h common/io/handle.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h common/wait.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c common/lock.c -o common/lock.o
|
||||||
|
|
||||||
|
common/log.o: common/log.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/stackTrace.h common/time.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/log.c -o common/log.o
|
||||||
|
|
||||||
|
common/memContext.o: common/memContext.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/memContext.c -o common/memContext.o
|
||||||
|
|
||||||
|
common/regExp.o: common/regExp.c common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/regExp.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h
|
||||||
|
$(CC) $(CFLAGS) -c common/regExp.c -o common/regExp.o
|
||||||
|
|
||||||
|
common/stackTrace.o: common/stackTrace.c common/assert.h common/error.auto.h common/error.h common/logLevel.h common/stackTrace.h
|
||||||
|
$(CC) $(CFLAGS) -c common/stackTrace.c -o common/stackTrace.o
|
||||||
|
|
||||||
|
common/time.o: common/time.c common/debug.h common/logLevel.h common/stackTrace.h common/time.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/time.c -o common/time.o
|
||||||
|
|
||||||
|
common/type/buffer.o: common/type/buffer.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/buffer.c -o common/type/buffer.o
|
||||||
|
|
||||||
|
common/type/convert.o: common/type/convert.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/stackTrace.h common/type/convert.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/convert.c -o common/type/convert.o
|
||||||
|
|
||||||
|
common/type/keyValue.o: common/type/keyValue.c common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/list.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/keyValue.c -o common/type/keyValue.o
|
||||||
|
|
||||||
|
common/type/list.o: common/type/list.c common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/list.h common/type/string.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/list.c -o common/type/list.o
|
||||||
|
|
||||||
|
common/type/string.o: common/type/string.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/string.c -o common/type/string.o
|
||||||
|
|
||||||
|
common/type/stringList.o: common/type/stringList.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/list.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/stringList.c -o common/type/stringList.o
|
||||||
|
|
||||||
|
common/type/variant.o: common/type/variant.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/variant.h common/type/variantList.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/variant.c -o common/type/variant.o
|
||||||
|
|
||||||
|
common/type/variantList.o: common/type/variantList.c common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/list.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h
|
||||||
|
$(CC) $(CFLAGS) -c common/type/variantList.c -o common/type/variantList.o
|
||||||
|
|
||||||
|
common/wait.o: common/wait.c common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/time.h common/type/convert.h common/wait.h
|
||||||
|
$(CC) $(CFLAGS) -c common/wait.c -o common/wait.o
|
||||||
|
|
||||||
|
config/config.o: config/config.c common/assert.h common/debug.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.c config/config.auto.h config/config.h config/define.auto.h config/define.h
|
||||||
|
$(CC) $(CFLAGS) -c config/config.c -o config/config.o
|
||||||
|
|
||||||
|
config/define.o: config/define.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/stackTrace.h common/type/convert.h config/define.auto.c config/define.auto.h config/define.h
|
||||||
|
$(CC) $(CFLAGS) -c config/define.c -o config/define.o
|
||||||
|
|
||||||
|
config/load.o: config/load.c command/command.h common/debug.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h config/parse.h
|
||||||
|
$(CC) $(CFLAGS) -c config/load.c -o config/load.o
|
||||||
|
|
||||||
|
config/parse.o: config/parse.c common/assert.h common/debug.h common/error.auto.h common/error.h common/ini.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/regExp.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/parse.auto.c config/parse.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c config/parse.c -o config/parse.o
|
||||||
|
|
||||||
|
main.o: main.c command/archive/get/get.h command/archive/push/push.h command/command.h command/help/help.h common/debug.h common/error.auto.h common/error.h common/exit.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h perl/exec.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c main.c -o main.o
|
||||||
|
|
||||||
|
perl/config.o: perl/config.c common/debug.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h
|
||||||
|
$(CC) $(CFLAGS) -c perl/config.c -o perl/config.o
|
||||||
|
|
||||||
|
perl/exec.o: perl/exec.c ../libc/LibC.h cipher/block.h cipher/cipher.h cipher/random.h common/debug.h common/encode.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h config/load.h config/parse.h perl/config.h perl/embed.auto.c perl/exec.h perl/libc.auto.c postgres/pageChecksum.h storage/driver/posix/driver.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/info.h version.h ../libc/xs/cipher/block.xsh ../libc/xs/common/encode.xsh
|
||||||
|
$(CC) $(CFLAGS) -c perl/exec.c -o perl/exec.o
|
||||||
|
|
||||||
|
postgres/info.o: postgres/info.c common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h postgres/info.h postgres/type.h postgres/version.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c postgres/info.c -o postgres/info.o
|
||||||
|
|
||||||
|
postgres/pageChecksum.o: postgres/pageChecksum.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/stackTrace.h common/type/convert.h postgres/pageChecksum.h postgres/type.h
|
||||||
|
$(CC) $(CFLAGS) -funroll-loops -ftree-vectorize -c postgres/pageChecksum.c -o postgres/pageChecksum.o
|
||||||
|
|
||||||
|
storage/driver/posix/driver.o: storage/driver/posix/driver.c common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/regExp.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h storage/driver/posix/driver.h storage/driver/posix/driverFile.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/driver/posix/driver.c -o storage/driver/posix/driver.o
|
||||||
|
|
||||||
|
storage/driver/posix/driverFile.o: storage/driver/posix/driverFile.c common/assert.h common/debug.h common/error.auto.h common/error.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h storage/driver/posix/driverFile.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/driver/posix/driverFile.c -o storage/driver/posix/driverFile.o
|
||||||
|
|
||||||
|
storage/driver/posix/driverRead.o: storage/driver/posix/driverRead.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h storage/driver/posix/driverFile.h storage/driver/posix/driverRead.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/driver/posix/driverRead.c -o storage/driver/posix/driverRead.o
|
||||||
|
|
||||||
|
storage/driver/posix/driverWrite.o: storage/driver/posix/driverWrite.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h storage/driver/posix/driver.h storage/driver/posix/driverFile.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileWrite.h storage/info.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/driver/posix/driverWrite.c -o storage/driver/posix/driverWrite.o
|
||||||
|
|
||||||
|
storage/fileRead.o: storage/fileRead.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h storage/driver/posix/driverRead.h storage/fileRead.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/fileRead.c -o storage/fileRead.o
|
||||||
|
|
||||||
|
storage/fileWrite.o: storage/fileWrite.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/string.h storage/driver/posix/driverWrite.h storage/fileWrite.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/fileWrite.c -o storage/fileWrite.o
|
||||||
|
|
||||||
|
storage/helper.o: storage/helper.c common/debug.h common/error.auto.h common/error.h common/lock.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h config/config.auto.h config/config.h config/define.auto.h config/define.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/helper.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/helper.c -o storage/helper.o
|
||||||
|
|
||||||
|
storage/storage.o: storage/storage.c common/assert.h common/debug.h common/error.auto.h common/error.h common/log.h common/logLevel.h common/memContext.h common/stackTrace.h common/type/buffer.h common/type/convert.h common/type/keyValue.h common/type/string.h common/type/stringList.h common/type/variant.h common/type/variantList.h common/wait.h storage/driver/posix/driver.h storage/driver/posix/driverRead.h storage/driver/posix/driverWrite.h storage/fileRead.h storage/fileWrite.h storage/info.h storage/storage.h version.h
|
||||||
|
$(CC) $(CFLAGS) -c storage/storage.c -o storage/storage.o
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
/***********************************************************************************************************************************
|
/***********************************************************************************************************************************
|
||||||
Time Management
|
Time Management
|
||||||
***********************************************************************************************************************************/
|
***********************************************************************************************************************************/
|
||||||
#include "stdio.h"
|
#include <stdio.h>
|
||||||
#include "sys/time.h"
|
#include <sys/time.h>
|
||||||
|
|
||||||
#include "common/debug.h"
|
#include "common/debug.h"
|
||||||
#include "common/time.h"
|
#include "common/time.h"
|
||||||
|
@ -54,4 +54,172 @@ sub buildLastModTime
|
|||||||
|
|
||||||
push @EXPORT, qw(buildLastModTime);
|
push @EXPORT, qw(buildLastModTime);
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# Build a dependency tree for C files
|
||||||
|
####################################################################################################################################
|
||||||
|
sub buildDependencyTree
|
||||||
|
{
|
||||||
|
my $oStorage = shift;
|
||||||
|
|
||||||
|
my $rhDependencyTree = {};
|
||||||
|
|
||||||
|
# Iterate all files
|
||||||
|
foreach my $strFile (sort(keys(%{$oStorage->manifest('src')})))
|
||||||
|
{
|
||||||
|
# Only process non-auto files
|
||||||
|
if ($strFile =~ /^[A-Za-z0-9\/]+\.(c|h)$/)
|
||||||
|
{
|
||||||
|
buildDependencyTreeSub($oStorage, $rhDependencyTree, $strFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rhDependencyTree;
|
||||||
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(buildDependencyTree);
|
||||||
|
|
||||||
|
sub buildDependencyTreeSub
|
||||||
|
{
|
||||||
|
my $oStorage = shift;
|
||||||
|
my $rhDependencyTree = shift;
|
||||||
|
my $strFile = shift;
|
||||||
|
|
||||||
|
if (!defined($rhDependencyTree->{$strFile}))
|
||||||
|
{
|
||||||
|
$rhDependencyTree->{$strFile} = {};
|
||||||
|
|
||||||
|
# Load file contents
|
||||||
|
my $rstrContent = $oStorage->get($oStorage->openRead("src/${strFile}", {bIgnoreMissing => true}));
|
||||||
|
|
||||||
|
if (!defined($rstrContent))
|
||||||
|
{
|
||||||
|
$rstrContent = $oStorage->get("libc/${strFile}");
|
||||||
|
}
|
||||||
|
|
||||||
|
# Process includes
|
||||||
|
my $rhInclude = {};
|
||||||
|
|
||||||
|
foreach my $strInclude (sort($$rstrContent =~ /\#include \".*\"$/mg))
|
||||||
|
{
|
||||||
|
$strInclude = (split('"', $strInclude))[1];
|
||||||
|
$rhInclude->{$strInclude} = true;
|
||||||
|
|
||||||
|
buildDependencyTreeSub($oStorage, $rhDependencyTree, $strInclude);
|
||||||
|
|
||||||
|
foreach my $strIncludeSub (@{$rhDependencyTree->{$strInclude}{include}})
|
||||||
|
{
|
||||||
|
$rhInclude->{$strIncludeSub} = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
my @stryInclude = sort(keys(%{$rhInclude}));
|
||||||
|
$rhDependencyTree->{$strFile}{include} = \@stryInclude;
|
||||||
|
|
||||||
|
# Find header files that map to C files -- these are required to compile this file
|
||||||
|
foreach my $strInclude (@stryInclude)
|
||||||
|
{
|
||||||
|
if ($strInclude =~ /^[A-Za-z0-9\/]+\.h$/)
|
||||||
|
{
|
||||||
|
my $strObject = substr($strInclude, 0, length($strInclude) - 1) . 'c';
|
||||||
|
|
||||||
|
if ($oStorage->exists("src/${strObject}"))
|
||||||
|
{
|
||||||
|
push(@{$rhDependencyTree->{$strFile}{object}}, $strObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# Build Makefile object compile rules
|
||||||
|
####################################################################################################################################
|
||||||
|
sub buildMakefileObjectCompile
|
||||||
|
{
|
||||||
|
# Assign function parameters, defaults, and log debug info
|
||||||
|
my
|
||||||
|
(
|
||||||
|
$strOperation,
|
||||||
|
$oStorage,
|
||||||
|
$rhOption,
|
||||||
|
) =
|
||||||
|
logDebugParam
|
||||||
|
(
|
||||||
|
__PACKAGE__ . '::buildMakefile', \@_,
|
||||||
|
{name => 'oStorage'},
|
||||||
|
{name => 'rhOption', optional => true},
|
||||||
|
);
|
||||||
|
|
||||||
|
my $rhDependencyTree = buildDependencyTree($oStorage);
|
||||||
|
my $strMakefile;
|
||||||
|
|
||||||
|
foreach my $strFile (sort(keys(%{$rhDependencyTree})))
|
||||||
|
{
|
||||||
|
if ($strFile =~ /^[A-Za-z0-9\/]+\.c$/)
|
||||||
|
{
|
||||||
|
my $strObject = substr($strFile, 0, length($strFile) - 1) . 'o';
|
||||||
|
|
||||||
|
my $strDepend = "${strFile}";
|
||||||
|
|
||||||
|
foreach my $strInclude (@{$rhDependencyTree->{$strFile}{include}})
|
||||||
|
{
|
||||||
|
$strDepend .= ' ' . ($oStorage->exists("src/${strInclude}") ? '' : '../libc/') . $strInclude;
|
||||||
|
}
|
||||||
|
|
||||||
|
$strMakefile .=
|
||||||
|
(defined($strMakefile) ? "\n" : '') .
|
||||||
|
"${strObject}: ${strDepend}\n" .
|
||||||
|
"\t\$(CC) \$(CFLAGS)" . (defined($rhOption->{$strObject}) ? ' ' . $rhOption->{$strObject} : '') .
|
||||||
|
" -c ${strFile} -o ${strObject}\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $strMakefile;
|
||||||
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(buildMakefileObjectCompile);
|
||||||
|
|
||||||
|
####################################################################################################################################
|
||||||
|
# Update a Makefile with object compile rules
|
||||||
|
####################################################################################################################################
|
||||||
|
sub buildMakefile
|
||||||
|
{
|
||||||
|
# Assign function parameters, defaults, and log debug info
|
||||||
|
my
|
||||||
|
(
|
||||||
|
$strOperation,
|
||||||
|
$oStorage,
|
||||||
|
$strMakefile,
|
||||||
|
$rhOption,
|
||||||
|
) =
|
||||||
|
logDebugParam
|
||||||
|
(
|
||||||
|
__PACKAGE__ . '::buildMakefile', \@_,
|
||||||
|
{name => 'oStorage'},
|
||||||
|
{name => 'strMakeFile'},
|
||||||
|
{name => 'rhOption', optional => true},
|
||||||
|
);
|
||||||
|
|
||||||
|
# Trim off the end where the object compile is
|
||||||
|
my $strHeader = 'Compile rules';
|
||||||
|
|
||||||
|
$strMakefile =~ s/^\#.*${strHeader}(.|\s)+//mg;
|
||||||
|
|
||||||
|
# Add object compile section
|
||||||
|
$strMakefile .=
|
||||||
|
"# $strHeader\n" .
|
||||||
|
('#' x 132) . "\n" .
|
||||||
|
buildMakefileObjectCompile($oStorage, {rhOption => $rhOption});
|
||||||
|
|
||||||
|
|
||||||
|
# Return from function and log return values if any
|
||||||
|
return logDebugReturn
|
||||||
|
(
|
||||||
|
$strOperation,
|
||||||
|
{name => 'strMakefile', value => $strMakefile},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
push @EXPORT, qw(buildMakefile);
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
59
test/test.pl
59
test/test.pl
@ -466,6 +466,21 @@ eval
|
|||||||
buildAll("${strBackRestBase}/src", $rhBuild);
|
buildAll("${strBackRestBase}/src", $rhBuild);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Auto-generate C Makefile
|
||||||
|
#-----------------------------------------------------------------------------------------------------------------------
|
||||||
|
if (!$bSmart || buildLastModTime($oStorageBackRest, "${strBackRestBase}", ['libc', 'src']) >
|
||||||
|
buildLastModTime($oStorageBackRest, "${strBackRestBase}", ['src'], 'Makefile'))
|
||||||
|
{
|
||||||
|
&log(INFO, " autogenerate C Makefile");
|
||||||
|
|
||||||
|
$oStorageBackRest->put(
|
||||||
|
"src/Makefile",
|
||||||
|
buildMakefile(
|
||||||
|
$oStorageBackRest,
|
||||||
|
${$oStorageBackRest->get("src/Makefile")},
|
||||||
|
{rhOption => {'postgres/pageChecksum.o' => '-funroll-loops -ftree-vectorize'}}));
|
||||||
|
}
|
||||||
|
|
||||||
if ($bGenOnly)
|
if ($bGenOnly)
|
||||||
{
|
{
|
||||||
exit 0;
|
exit 0;
|
||||||
@ -786,28 +801,11 @@ eval
|
|||||||
if ($bBinRequired)
|
if ($bBinRequired)
|
||||||
{
|
{
|
||||||
my $strBinPath = "${strVagrantPath}/bin";
|
my $strBinPath = "${strVagrantPath}/bin";
|
||||||
my $strBinSmart = "${strBinPath}/build.timestamp";
|
|
||||||
my $bRebuild = !$bSmart;
|
|
||||||
my @stryBinSrcPath = ('src', 'libc');
|
my @stryBinSrcPath = ('src', 'libc');
|
||||||
|
|
||||||
# Find the lastest modified time for dirs that affect the bin build
|
# Find the lastest modified time for dirs that affect the bin build
|
||||||
$lTimestampLast = buildLastModTime($oStorageBackRest, $strBackRestBase, \@stryBinSrcPath);
|
$lTimestampLast = buildLastModTime($oStorageBackRest, $strBackRestBase, \@stryBinSrcPath);
|
||||||
|
|
||||||
# Rebuild if the modification time of the smart file does equal the last changes in source paths
|
|
||||||
if ($bSmart)
|
|
||||||
{
|
|
||||||
if (!$oStorageBackRest->exists($strBinSmart) || $oStorageBackRest->info($strBinSmart)->mtime < $lTimestampLast)
|
|
||||||
{
|
|
||||||
&log(INFO, ' bin dependencies have changed, rebuilding...');
|
|
||||||
|
|
||||||
$bRebuild = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
executeTest("sudo rm -rf ${strBinPath}");
|
|
||||||
}
|
|
||||||
|
|
||||||
# Loop through VMs to do the C bin builds
|
# Loop through VMs to do the C bin builds
|
||||||
my $bLogDetail = $strLogLevel eq 'detail';
|
my $bLogDetail = $strLogLevel eq 'detail';
|
||||||
my @stryBuildVm = $strVm eq VM_ALL ? VM_LIST : ($strVm);
|
my @stryBuildVm = $strVm eq VM_ALL ? VM_LIST : ($strVm);
|
||||||
@ -815,6 +813,21 @@ eval
|
|||||||
foreach my $strBuildVM (@stryBuildVm)
|
foreach my $strBuildVM (@stryBuildVm)
|
||||||
{
|
{
|
||||||
my $strBuildPath = "${strBinPath}/${strBuildVM}/src";
|
my $strBuildPath = "${strBinPath}/${strBuildVM}/src";
|
||||||
|
my $bRebuild = !$bSmart;
|
||||||
|
|
||||||
|
# Rebuild if the modification time of the smart file does equal the last changes in source paths
|
||||||
|
if ($bSmart)
|
||||||
|
{
|
||||||
|
my $strBinSmart = "${strBuildPath}/pgbackrest";
|
||||||
|
|
||||||
|
if (!$oStorageBackRest->exists($strBinSmart) ||
|
||||||
|
$oStorageBackRest->info($strBinSmart)->mtime < $lTimestampLast)
|
||||||
|
{
|
||||||
|
&log(INFO, " bin dependencies have changed for ${strBuildVM}, rebuilding...");
|
||||||
|
|
||||||
|
$bRebuild = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($bRebuild)
|
if ($bRebuild)
|
||||||
{
|
{
|
||||||
@ -829,10 +842,13 @@ eval
|
|||||||
{
|
{
|
||||||
$oStorageBackRest->pathCreate(
|
$oStorageBackRest->pathCreate(
|
||||||
"${strBinPath}/${strBuildVM}/${strBinSrcPath}", {bIgnoreExists => true, bCreateParent => true});
|
"${strBinPath}/${strBuildVM}/${strBinSrcPath}", {bIgnoreExists => true, bCreateParent => true});
|
||||||
executeTest(
|
|
||||||
"rsync -rt ${strBackRestBase}/${strBinSrcPath}/* ${strBinPath}/${strBuildVM}/${strBinSrcPath}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
executeTest(
|
||||||
|
"rsync -rt" . (!$bSmart ? " --delete-excluded" : '') .
|
||||||
|
" --include=" . join('/*** --include=', @stryBinSrcPath) . '/*** --exclude=*' .
|
||||||
|
" ${strBackRestBase}/ ${strBinPath}/${strBuildVM}");
|
||||||
|
|
||||||
if (vmCoverage($strVm) && !$bNoLint)
|
if (vmCoverage($strVm) && !$bNoLint)
|
||||||
{
|
{
|
||||||
&log(INFO, " clang static analyzer ${strBuildVM} (${strBuildPath})");
|
&log(INFO, " clang static analyzer ${strBuildVM} (${strBuildPath})");
|
||||||
@ -852,11 +868,6 @@ eval
|
|||||||
executeTest("docker rm -f test-build");
|
executeTest("docker rm -f test-build");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Write files to indicate the last time a build was successful
|
|
||||||
$oStorageBackRest->put($strBinSmart);
|
|
||||||
utime($lTimestampLast, $lTimestampLast, $strBinSmart) or
|
|
||||||
confess "unable to set time for ${strBinSmart}" . (defined($!) ? ":$!" : '');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Build the package
|
# Build the package
|
||||||
|
Loading…
Reference in New Issue
Block a user