aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2009-10-11 02:24:22 +0200
committerJay Berkenbilt <ejb@ql.org>2009-10-11 02:24:22 +0200
commit2b5ac676ed1cbde1092d41acf0775b1c8d9a2baf (patch)
tree0d3a5ebe8e83f80dbc6e808efa6abc7c3921b5d9
parent9e05a15d7b3ed099fcc605b782c1f0ca6326dde2 (diff)
downloadqpdf-2b5ac676ed1cbde1092d41acf0775b1c8d9a2baf.tar.zst
generalize build
git-svn-id: svn+q:///qpdf/trunk@776 71b93d88-0707-0410-a8cf-f5a4172ac649
-rw-r--r--examples/build.mk2
-rw-r--r--external-libs/build.mk3
-rw-r--r--libqpdf/build.mk4
-rw-r--r--libtests/build.mk2
-rw-r--r--make/gcc-linux.mk17
-rw-r--r--make/libtool.mk16
-rw-r--r--make/mingw.mk17
-rw-r--r--make/msvc.mk25
-rw-r--r--qpdf/build.mk2
-rw-r--r--zlib-flate/build.mk2
10 files changed, 44 insertions, 46 deletions
diff --git a/examples/build.mk b/examples/build.mk
index 41053798..404d40ce 100644
--- a/examples/build.mk
+++ b/examples/build.mk
@@ -31,4 +31,4 @@ $(foreach B,$(CBINS_examples),$(eval \
$(foreach B,$(BINS_examples) $(CBINS_examples),$(eval \
examples/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \
- $(call makebin,$(OBJS_$(B)),$$@)))
+ $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf))))
diff --git a/external-libs/build.mk b/external-libs/build.mk
index 9dfa0bce..597d3a6e 100644
--- a/external-libs/build.mk
+++ b/external-libs/build.mk
@@ -54,6 +54,5 @@ OBJS_dftables = $(call c_src_to_obj,external-libs/pcre/dftables.c)
$(OBJS_dftables): external-libs/pcre/dftables.c
$(call c_compile,$<,)
-external-libs/$(OUTPUT_DIR)/$(call binname,dftables): LIBS=
external-libs/$(OUTPUT_DIR)/$(call binname,dftables): $(OBJS_dftables)
- $(call makebin,$(OBJS_dftables),$@)
+ $(call makebin,$(OBJS_dftables),$@,,)
diff --git a/libqpdf/build.mk b/libqpdf/build.mk
index 03408e06..6d6b3ae7 100644
--- a/libqpdf/build.mk
+++ b/libqpdf/build.mk
@@ -3,6 +3,8 @@ TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf)
$(TARGETS_libqpdf): $(TARGETS_external-libs)
INCLUDES_libqpdf = include libqpdf $(INCLUDES_external-libs)
+LDFLAGS_libqpdf = -Llibqpdf/$(OUTPUT_DIR)
+LIBS_libqpdf = -lqpdf
SRCS_libqpdf = \
libqpdf/BitStream.cc \
@@ -70,4 +72,4 @@ $(OBJS_libqpdf): libqpdf/$(OUTPUT_DIR)/%.$(LOBJ): libqpdf/%.cc
# * Otherwise, increment REVISION
$(TARGETS_libqpdf): $(OBJS_libqpdf)
- $(call makelib,$(OBJS_libqpdf),$@,3,0,0)
+ $(call makelib,$(OBJS_libqpdf),$@,$(LDFLAGS),$(LIBS),3,0,0)
diff --git a/libtests/build.mk b/libtests/build.mk
index e4fc7ae3..8b996fb8 100644
--- a/libtests/build.mk
+++ b/libtests/build.mk
@@ -36,4 +36,4 @@ $(foreach B,$(BINS_libtests),$(eval \
$(foreach B,$(BINS_libtests),$(eval \
libtests/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \
- $(call makebin,$(OBJS_$(B)),$$@)))
+ $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf))))
diff --git a/make/gcc-linux.mk b/make/gcc-linux.mk
index f24013e8..6450ce75 100644
--- a/make/gcc-linux.mk
+++ b/make/gcc-linux.mk
@@ -62,22 +62,21 @@ define makeslib
$(RANLIB) $(2)
endef
-# 1 2 3 4 5
-# Usage: $(call makelib,objs,library,current,revision,age)
+# 1 2 3 4 5 6 7
+# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age)
define makelib
$(RM) $(2) $(2).*
- major=$$(( $(3) - $(5))); \
- versuffix=$$major.$5.$4; \
+ major=$$(( $(5) - $(7))); \
+ versuffix=$$major.$(7).$(6); \
$(CXX) $(CXXFLAGS) -shared -o $(2).$$versuffix $(1) \
-Wl,--soname -Wl,`basename $(2)`.$$major \
- $(LDFLAGS) $(LIBS); \
+ $(3) $(4); \
ln -s `basename $(2)`.$$versuffix $(2); \
ln -s `basename $(2)`.$$versuffix $(2).$$major
endef
-# 1 2
-# Usage: $(call makebin,objs,binary)
+# 1 2 3 4
+# Usage: $(call makebin,objs,binary,ldflags,libs)
define makebin
- $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \
- -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS)
+ $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) $(3) $(4)
endef
diff --git a/make/libtool.mk b/make/libtool.mk
index bc4ec120..3211b604 100644
--- a/make/libtool.mk
+++ b/make/libtool.mk
@@ -76,18 +76,16 @@ define makeslib
$(RANLIB) $(2)
endef
-# 1 2 3 4 5
-# Usage: $(call makelib,objs,library,current,revision,age)
+# 1 2 3 4 5 6 7
+# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age)
define makelib
$(LIBTOOL) --mode=link \
- $(CXX) $(CXXFLAGS) -o $(2) $(1) $(LDFLAGS) $(LIBS) \
- -rpath $(libdir) -version-info $(3):$(4):$(5)
+ $(CXX) $(CXXFLAGS) -o $(2) $(1) $(3) $(4) \
+ -rpath $(libdir) -version-info $(5):$(6):$(7)
endef
-# 1 2
-# Usage: $(call makebin,objs,binary)
+# 1 2 3 4
+# Usage: $(call makebin,objs,binary,ldflags,libs)
define makebin
- $(LIBTOOL) --mode=link \
- $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \
- -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS)
+ $(LIBTOOL) --mode=link $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4)
endef
diff --git a/make/mingw.mk b/make/mingw.mk
index f0442c96..ae599393 100644
--- a/make/mingw.mk
+++ b/make/mingw.mk
@@ -44,17 +44,16 @@ define makeslib
$(RANLIB) $(2)
endef
-# 1 2 3 4 5
-# Usage: $(call makelib,objs,library,current,revision,age)
+# 1 2 3 4 5 6 7
+# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age)
define makelib
- dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(3).dll) $(1); \
- $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(3).dll \
- $(1) $(LDFLAGS) $(LIBS)
+ dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(5).dll) $(1); \
+ $(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(5).dll \
+ $(1) $(3) $(4)
endef
-# 1 2
-# Usage: $(call makebin,objs,binary)
+# 1 2 3 4
+# Usage: $(call makebin,objs,binary,ldflags,libs)
define makebin
- $(CXX) $(CXXFLAGS) $(1) -o $(2) $(LDFLAGS) \
- -Llibqpdf/$(OUTPUT_DIR) -lqpdf $(LIBS)
+ $(CXX) $(CXXFLAGS) $(1) -o $(2) $(3) $(4)
endef
diff --git a/make/msvc.mk b/make/msvc.mk
index b60abc03..c5961c03 100644
--- a/make/msvc.mk
+++ b/make/msvc.mk
@@ -40,26 +40,27 @@ define makeslib
lib /nologo /OUT:$(2) $(1)
endef
-# 1 2 3 4 5
-# Usage: $(call makelib,objs,library,current,revision,age)
+# 1 2 3 4 5 6 7
+# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age)
define makelib
- cl /nologo /Zi /Gy /EHsc /MD /LD /Fe$(basename $(2))$(3).dll $(1) \
+ cl /nologo /Zi /Gy /EHsc /MD /LD /Fe$(basename $(2))$(5).dll $(1) \
/link /incremental:no \
- $(foreach L,$(subst -L,,$(LDFLAGS)),/LIBPATH:$(L)) \
- $(foreach L,$(subst -l,,$(LIBS)),$(L).lib)
- if [ -f $(basename $(2))$(3).dll.manifest ]; then \
- mt.exe -nologo -manifest $(basename $(2))$(3).dll.manifest \
- -outputresource:$(basename $(2))$(3).dll\;2; \
+ $(foreach L,$(subst -L,,$(3)),/LIBPATH:$(L)) \
+ $(foreach L,$(subst -l,,$(4)),$(L).lib)
+ if [ -f $(basename $(2))$(5).dll.manifest ]; then \
+ mt.exe -nologo -manifest $(basename $(2))$(5).dll.manifest \
+ -outputresource:$(basename $(2))$(5).dll\;2; \
fi
+ mv $(2)$(5).lib $(2).lib
endef
-# 1 2
-# Usage: $(call makebin,objs,binary)
+# 1 2 3 4
+# Usage: $(call makebin,objs,binary,ldflags,libs)
define makebin
cl /nologo /Zi /Gy /EHsc /MD $(1) \
/link /incremental:no /OUT:$(2) \
- $(foreach L,$(subst -L,,$(LDFLAGS)),/LIBPATH:$(L)) \
- $(foreach L,$(subst -l,,$(LIBS)),$(L).lib)
+ $(foreach L,$(subst -L,,$(3)),/LIBPATH:$(L)) \
+ $(foreach L,$(subst -l,,$(4)),$(L).lib)
if [ -f $(2).manifest ]; then \
mt.exe -nologo -manifest $(2).manifest \
-outputresource:$(2)\;2; \
diff --git a/qpdf/build.mk b/qpdf/build.mk
index bf9e6e51..4c0f0e76 100644
--- a/qpdf/build.mk
+++ b/qpdf/build.mk
@@ -30,4 +30,4 @@ $(foreach B,$(CBINS_qpdf),$(eval \
$(foreach B,$(BINS_qpdf) $(CBINS_qpdf),$(eval \
qpdf/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \
- $(call makebin,$(OBJS_$(B)),$$@)))
+ $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf))))
diff --git a/zlib-flate/build.mk b/zlib-flate/build.mk
index f4cca29d..955489b1 100644
--- a/zlib-flate/build.mk
+++ b/zlib-flate/build.mk
@@ -19,4 +19,4 @@ $(OBJS_zlib-flate): zlib-flate/$(OUTPUT_DIR)/%.$(OBJ): zlib-flate/%.cc
$(call compile,$<,$(INCLUDES_zlib-flate))
zlib-flate/$(OUTPUT_DIR)/$(call binname,zlib-flate): $(OBJS_zlib-flate)
- $(call makebin,$(OBJS_zlib-flate),$@)
+ $(call makebin,$(OBJS_zlib-flate),$@,$(LDFLAGS) $(LDFLAGS_libqpdf),$(LIBS) $(LIBS_libqpdf))