Commit 2b5ac676ed1cbde1092d41acf0775b1c8d9a2baf
1 parent
9e05a15d
generalize build
git-svn-id: svn+q:///qpdf/trunk@776 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
10 changed files
with
44 additions
and
46 deletions
examples/build.mk
| ... | ... | @@ -31,4 +31,4 @@ $(foreach B,$(CBINS_examples),$(eval \ |
| 31 | 31 | |
| 32 | 32 | $(foreach B,$(BINS_examples) $(CBINS_examples),$(eval \ |
| 33 | 33 | examples/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ |
| 34 | - $(call makebin,$(OBJS_$(B)),$$@))) | |
| 34 | + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)))) | ... | ... |
external-libs/build.mk
| ... | ... | @@ -54,6 +54,5 @@ OBJS_dftables = $(call c_src_to_obj,external-libs/pcre/dftables.c) |
| 54 | 54 | $(OBJS_dftables): external-libs/pcre/dftables.c |
| 55 | 55 | $(call c_compile,$<,) |
| 56 | 56 | |
| 57 | -external-libs/$(OUTPUT_DIR)/$(call binname,dftables): LIBS= | |
| 58 | 57 | external-libs/$(OUTPUT_DIR)/$(call binname,dftables): $(OBJS_dftables) |
| 59 | - $(call makebin,$(OBJS_dftables),$@) | |
| 58 | + $(call makebin,$(OBJS_dftables),$@,,) | ... | ... |
libqpdf/build.mk
| ... | ... | @@ -3,6 +3,8 @@ TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf) |
| 3 | 3 | $(TARGETS_libqpdf): $(TARGETS_external-libs) |
| 4 | 4 | |
| 5 | 5 | INCLUDES_libqpdf = include libqpdf $(INCLUDES_external-libs) |
| 6 | +LDFLAGS_libqpdf = -Llibqpdf/$(OUTPUT_DIR) | |
| 7 | +LIBS_libqpdf = -lqpdf | |
| 6 | 8 | |
| 7 | 9 | SRCS_libqpdf = \ |
| 8 | 10 | libqpdf/BitStream.cc \ |
| ... | ... | @@ -70,4 +72,4 @@ $(OBJS_libqpdf): libqpdf/$(OUTPUT_DIR)/%.$(LOBJ): libqpdf/%.cc |
| 70 | 72 | # * Otherwise, increment REVISION |
| 71 | 73 | |
| 72 | 74 | $(TARGETS_libqpdf): $(OBJS_libqpdf) |
| 73 | - $(call makelib,$(OBJS_libqpdf),$@,3,0,0) | |
| 75 | + $(call makelib,$(OBJS_libqpdf),$@,$(LDFLAGS),$(LIBS),3,0,0) | ... | ... |
libtests/build.mk
| ... | ... | @@ -36,4 +36,4 @@ $(foreach B,$(BINS_libtests),$(eval \ |
| 36 | 36 | |
| 37 | 37 | $(foreach B,$(BINS_libtests),$(eval \ |
| 38 | 38 | libtests/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ |
| 39 | - $(call makebin,$(OBJS_$(B)),$$@))) | |
| 39 | + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)))) | ... | ... |
make/gcc-linux.mk
| ... | ... | @@ -62,22 +62,21 @@ define makeslib |
| 62 | 62 | $(RANLIB) $(2) |
| 63 | 63 | endef |
| 64 | 64 | |
| 65 | -# 1 2 3 4 5 | |
| 66 | -# Usage: $(call makelib,objs,library,current,revision,age) | |
| 65 | +# 1 2 3 4 5 6 7 | |
| 66 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | |
| 67 | 67 | define makelib |
| 68 | 68 | $(RM) $(2) $(2).* |
| 69 | - major=$$(( $(3) - $(5))); \ | |
| 70 | - versuffix=$$major.$5.$4; \ | |
| 69 | + major=$$(( $(5) - $(7))); \ | |
| 70 | + versuffix=$$major.$(7).$(6); \ | |
| 71 | 71 | $(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \ |
| 72 | 72 | -Wl,--soname -Wl,`basename $(2)`.$$major \ |
| 73 | - $(LDFLAGS) $(LIBS); \ | |
| 73 | + $(3) $(4); \ | |
| 74 | 74 | ln -s `basename $(2)`.$$versuffix $(2); \ |
| 75 | 75 | ln -s `basename $(2)`.$$versuffix $(2).$$major |
| 76 | 76 | endef |
| 77 | 77 | |
| 78 | -# 1 2 | |
| 79 | -# Usage: $(call makebin,objs,binary) | |
| 78 | +# 1 2 3 4 | |
| 79 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | |
| 80 | 80 | define makebin |
| 81 | - $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \ | |
| 82 | - -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS) | |
| 81 | + $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) $(3) $(4) | |
| 83 | 82 | endef | ... | ... |
make/libtool.mk
| ... | ... | @@ -76,18 +76,16 @@ define makeslib |
| 76 | 76 | $(RANLIB) $(2) |
| 77 | 77 | endef |
| 78 | 78 | |
| 79 | -# 1 2 3 4 5 | |
| 80 | -# Usage: $(call makelib,objs,library,current,revision,age) | |
| 79 | +# 1 2 3 4 5 6 7 | |
| 80 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | |
| 81 | 81 | define makelib |
| 82 | 82 | $(LIBTOOL) --mode=link \ |
| 83 | - $(CXX) $(CXXFLAGS) -o $(2) $(1) $(LDFLAGS) $(LIBS) \ | |
| 84 | - -rpath $(libdir) -version-info $(3):$(4):$(5) | |
| 83 | + $(CXX) $(CXXFLAGS) -o $(2) $(1) $(3) $(4) \ | |
| 84 | + -rpath $(libdir) -version-info $(5):$(6):$(7) | |
| 85 | 85 | endef |
| 86 | 86 | |
| 87 | -# 1 2 | |
| 88 | -# Usage: $(call makebin,objs,binary) | |
| 87 | +# 1 2 3 4 | |
| 88 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | |
| 89 | 89 | define makebin |
| 90 | - $(LIBTOOL) --mode=link \ | |
| 91 | - $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \ | |
| 92 | - -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS) | |
| 90 | + $(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4) | |
| 93 | 91 | endef | ... | ... |
make/mingw.mk
| ... | ... | @@ -44,17 +44,16 @@ define makeslib |
| 44 | 44 | $(RANLIB) $(2) |
| 45 | 45 | endef |
| 46 | 46 | |
| 47 | -# 1 2 3 4 5 | |
| 48 | -# Usage: $(call makelib,objs,library,current,revision,age) | |
| 47 | +# 1 2 3 4 5 6 7 | |
| 48 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | |
| 49 | 49 | define makelib |
| 50 | - dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(3).dll) $(1); \ | |
| 51 | - $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(3).dll \ | |
| 52 | - $(1) $(LDFLAGS) $(LIBS) | |
| 50 | + dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(5).dll) $(1); \ | |
| 51 | + $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(5).dll \ | |
| 52 | + $(1) $(3) $(4) | |
| 53 | 53 | endef |
| 54 | 54 | |
| 55 | -# 1 2 | |
| 56 | -# Usage: $(call makebin,objs,binary) | |
| 55 | +# 1 2 3 4 | |
| 56 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | |
| 57 | 57 | define makebin |
| 58 | - $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \ | |
| 59 | - -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS) | |
| 58 | + $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4) | |
| 60 | 59 | endef | ... | ... |
make/msvc.mk
| ... | ... | @@ -40,26 +40,27 @@ define makeslib |
| 40 | 40 | lib /nologo /OUT:$(2) $(1) |
| 41 | 41 | endef |
| 42 | 42 | |
| 43 | -# 1 2 3 4 5 | |
| 44 | -# Usage: $(call makelib,objs,library,current,revision,age) | |
| 43 | +# 1 2 3 4 5 6 7 | |
| 44 | +# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age) | |
| 45 | 45 | define makelib |
| 46 | - cl /nologo /Zi /Gy /EHsc /MD /LD /Fe$(basename $(2))$(3).dll $(1) \ | |
| 46 | + cl /nologo /Zi /Gy /EHsc /MD /LD /Fe$(basename $(2))$(5).dll $(1) \ | |
| 47 | 47 | /link /incremental:no \ |
| 48 | - $(foreach L,$(subst -L,,$(LDFLAGS)),/LIBPATH:$(L)) \ | |
| 49 | - $(foreach L,$(subst -l,,$(LIBS)),$(L).lib) | |
| 50 | - if [ -f $(basename $(2))$(3).dll.manifest ]; then \ | |
| 51 | - mt.exe -nologo -manifest $(basename $(2))$(3).dll.manifest \ | |
| 52 | - -outputresource:$(basename $(2))$(3).dll\;2; \ | |
| 48 | + $(foreach L,$(subst -L,,$(3)),/LIBPATH:$(L)) \ | |
| 49 | + $(foreach L,$(subst -l,,$(4)),$(L).lib) | |
| 50 | + if [ -f $(basename $(2))$(5).dll.manifest ]; then \ | |
| 51 | + mt.exe -nologo -manifest $(basename $(2))$(5).dll.manifest \ | |
| 52 | + -outputresource:$(basename $(2))$(5).dll\;2; \ | |
| 53 | 53 | fi |
| 54 | + mv $(2)$(5).lib $(2).lib | |
| 54 | 55 | endef |
| 55 | 56 | |
| 56 | -# 1 2 | |
| 57 | -# Usage: $(call makebin,objs,binary) | |
| 57 | +# 1 2 3 4 | |
| 58 | +# Usage: $(call makebin,objs,binary,ldflags,libs) | |
| 58 | 59 | define makebin |
| 59 | 60 | cl /nologo /Zi /Gy /EHsc /MD $(1) \ |
| 60 | 61 | /link /incremental:no /OUT:$(2) \ |
| 61 | - $(foreach L,$(subst -L,,$(LDFLAGS)),/LIBPATH:$(L)) \ | |
| 62 | - $(foreach L,$(subst -l,,$(LIBS)),$(L).lib) | |
| 62 | + $(foreach L,$(subst -L,,$(3)),/LIBPATH:$(L)) \ | |
| 63 | + $(foreach L,$(subst -l,,$(4)),$(L).lib) | |
| 63 | 64 | if [ -f $(2).manifest ]; then \ |
| 64 | 65 | mt.exe -nologo -manifest $(2).manifest \ |
| 65 | 66 | -outputresource:$(2)\;2; \ | ... | ... |
qpdf/build.mk
| ... | ... | @@ -30,4 +30,4 @@ $(foreach B,$(CBINS_qpdf),$(eval \ |
| 30 | 30 | |
| 31 | 31 | $(foreach B,$(BINS_qpdf) $(CBINS_qpdf),$(eval \ |
| 32 | 32 | qpdf/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \ |
| 33 | - $(call makebin,$(OBJS_$(B)),$$@))) | |
| 33 | + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)))) | ... | ... |
zlib-flate/build.mk
| ... | ... | @@ -19,4 +19,4 @@ $(OBJS_zlib-flate): zlib-flate/$(OUTPUT_DIR)/%.$(OBJ): zlib-flate/%.cc |
| 19 | 19 | $(call compile,$<,$(INCLUDES_zlib-flate)) |
| 20 | 20 | |
| 21 | 21 | zlib-flate/$(OUTPUT_DIR)/$(call binname,zlib-flate): $(OBJS_zlib-flate) |
| 22 | - $(call makebin,$(OBJS_zlib-flate),$@) | |
| 22 | + $(call makebin,$(OBJS_zlib-flate),$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf)) | ... | ... |