From 8ee458b625944574328f40c387ff972fb5c3be7b Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Fri, 5 May 2017 15:24:50 +0200 Subject: [PATCH] don't include testprof for library build ...well msvc still does it as I can't test it... --- makefile | 6 +++++- makefile.include | 9 ++++++++- makefile.mingw | 16 ++++++++++++++-- makefile.msvc | 2 +- makefile.shared | 9 +++++++-- makefile.unix | 29 +++++++++++++++++++++-------- 6 files changed, 56 insertions(+), 15 deletions(-) diff --git a/makefile b/makefile index 6caaf22..dc8fe39 100644 --- a/makefile +++ b/makefile @@ -225,12 +225,16 @@ src/hashes/sha2/sha512_224.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha512_22 src/hashes/sha2/sha512_256.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha512_256.c src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c +$(DOBJECTS): CFLAGS += -Itestprof +$(TOBJECTS): CFLAGS += -Itestprof + #This rule makes the libtomcrypt library. library: $(LIBNAME) #Dependencies on *.h $(OBJECTS): $(HEADERS) -$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h +$(DOBJECTS): $(HEADERS) $(THEADERS) +$(TOBJECTS): $(HEADERS) $(THEADERS) $(LIBNAME): $(OBJECTS) ifneq ($V,1) diff --git a/makefile.include b/makefile.include index c1cd7d5..081254a 100644 --- a/makefile.include +++ b/makefile.include @@ -30,7 +30,7 @@ endif # Compilation flags. Note the += does not write over the user's CFLAGS! -CFLAGS += -I./testprof/ -I./src/headers/ -Wall -Wsign-compare -Wshadow -DLTC_SOURCE +CFLAGS += -I./src/headers/ -Wall -Wsign-compare -Wshadow -DLTC_SOURCE ifdef OLD_GCC CFLAGS += -W @@ -84,6 +84,13 @@ CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" endif +#List of demo objects +DSOURCES != ls demos/*.c +DOBJECTS = ${DSOURCES:.c=.o} + +#List of testprof headers +THEADERS != ls testprof/*.h + TIMING=timing TEST=test diff --git a/makefile.mingw b/makefile.mingw index 75215c8..bcf033a 100644 --- a/makefile.mingw +++ b/makefile.mingw @@ -27,7 +27,7 @@ CFLAGS = -O2 -DUSE_LTM -DLTM_DESC -I../libtommath EXTRALIBS = -L../libtommath -ltommath #Compilation flags -LTC_CFLAGS = $(CFLAGS) -Isrc/headers -Itestprof -DLTC_SOURCE +LTC_CFLAGS = $(CFLAGS) -Isrc/headers -DLTC_SOURCE LTC_LDFLAGS = $(LDFLAGS) $(EXTRALIBS) #Libraries to be created @@ -203,6 +203,16 @@ src/headers/tomcrypt_mac.h src/headers/tomcrypt_macros.h src/headers/tomcrypt_ma src/headers/tomcrypt_misc.h src/headers/tomcrypt_pk.h src/headers/tomcrypt_pkcs.h \ src/headers/tomcrypt_prng.h +THEADERS != ls testprof/*.h + +#List of demo objects (only used to create a special rule to extend LTC_CFLAGS) +DSOURCES != ls demos/*.c +DOBJECTS = ${DSOURCES:.c=.o} + +#SPECIAL: demo- and test-objects required include-path "testprof" +$(DOBJECTS): LTC_CFLAGS += -Itestprof +$(TOBJECTS): LTC_CFLAGS += -Itestprof + .c.o: $(CC) $(LTC_CFLAGS) -c $< -o $@ @@ -222,9 +232,11 @@ src/hashes/sha2/sha512_224.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha512_22 src/hashes/sha2/sha512_256.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha512_256.c src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c + #Dependencies on *.h $(OBJECTS): $(HEADERS) -$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h +$(DOBJECTS): $(HEADERS) $(THEADERS) +$(TOBJECTS): $(HEADERS) $(THEADERS) #Create libtomcrypt_prof.a $(LIBTEST_S): $(TOBJECTS) diff --git a/makefile.msvc b/makefile.msvc index eae515f..3036336 100644 --- a/makefile.msvc +++ b/makefile.msvc @@ -186,7 +186,7 @@ src/ciphers/aes/aes_enc.obj: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c library: $(OBJECTS) $(TOBJECTS) lib /out:tomcrypt.lib $(OBJECTS) - lib /out:tomcrypt_prof.lib $(TOBJECTS) + lib /out:tomcrypt_prof.lib $(TOBJECTS) tv_gen: demos/tv_gen.c library cl $(CFLAGS) demos/tv_gen.c tomcrypt.lib advapi32.lib $(EXTRALIBS) diff --git a/makefile.shared b/makefile.shared index 8d9e964..748bf05 100644 --- a/makefile.shared +++ b/makefile.shared @@ -203,7 +203,7 @@ src/headers/tomcrypt_prng.h #END_INS #The default rule for make builds the libtomcrypt library. -default:library +default: library #ciphers come in two flavours... enc+dec and enc src/ciphers/aes/aes_enc.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c @@ -223,7 +223,12 @@ library: $(LIBNAME) #Dependencies on *.h $(OBJECTS): $(HEADERS) -$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h +$(DOBJECTS): $(HEADERS) $(THEADERS) +$(TOBJECTS): $(HEADERS) $(THEADERS) + +#SPECIAL: demo- and test-objects required include-path "testprof" +$(DOBJECTS): CFLAGS += -Itestprof +$(TOBJECTS): CFLAGS += -Itestprof .c.o: $(LTCOMPILE) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -c $< diff --git a/makefile.unix b/makefile.unix index 1acae9d..17f3abb 100644 --- a/makefile.unix +++ b/makefile.unix @@ -32,7 +32,7 @@ CFLAGS = -O2 -DUSE_LTM -DLTM_DESC -I../libtommath EXTRALIBS = ../libtommath/libtommath.a #Compilation flags -LTC_CFLAGS = $(CFLAGS) -Isrc/headers -Itestprof -DLTC_SOURCE +LTC_CFLAGS = $(CFLAGS) -Isrc/headers -DLTC_SOURCE LTC_LDFLAGS = $(LDFLAGS) $(EXTRALIBS) VERSION=1.17 @@ -207,14 +207,10 @@ src/headers/tomcrypt_mac.h src/headers/tomcrypt_macros.h src/headers/tomcrypt_ma src/headers/tomcrypt_misc.h src/headers/tomcrypt_pk.h src/headers/tomcrypt_pkcs.h \ src/headers/tomcrypt_prng.h -#This is necessary for compatibility with BSD make (namely on OpenBSD) -.SUFFIXES: .o .c - -.c.o: - $(CC) $(LTC_CFLAGS) -c $< -o $@ +THEADERS != ls testprof/*.h #The default rule for make builds the libtomcrypt.a library (static) -default: $(LIBMAIN_S) +default: library #SPECIAL: AES comes in two flavours - enc+dec and enc-only src/ciphers/aes/aes_enc.o: src/ciphers/aes/aes.c src/ciphers/aes/aes_tab.c @@ -229,9 +225,26 @@ src/hashes/sha2/sha512_224.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha512_22 src/hashes/sha2/sha512_256.o: src/hashes/sha2/sha512.c src/hashes/sha2/sha512_256.c src/hashes/sha2/sha256.o: src/hashes/sha2/sha256.c src/hashes/sha2/sha224.c +#List of demo objects (only used to create a special rule to extend LTC_CFLAGS) +DSOURCES != ls demos/*.c +DOBJECTS = ${DSOURCES:.c=.o} + +#This rule makes the libtomcrypt library. +library: $(LIBMAIN_S) + #Dependencies on *.h $(OBJECTS): $(HEADERS) -$(TOBJECTS): $(HEADERS) testprof/tomcrypt_test.h +$(DOBJECTS): $(HEADERS) $(THEADERS) +$(TOBJECTS): $(HEADERS) $(THEADERS) + +#SPECIAL: demo- and test-objects required include-path "testprof" +$(DOBJECTS): LTC_CFLAGS += -Itestprof +$(TOBJECTS): LTC_CFLAGS += -Itestprof + +#This is necessary for compatibility with BSD make (namely on OpenBSD) +.SUFFIXES: .o .c +.c.o: + $(CC) $(LTC_CFLAGS) -c $< -o $@ #Create libtomcrypt_prof.a $(LIBTEST_S): $(TOBJECTS)