aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2009-10-10 19:32:34 +0200
committerJay Berkenbilt <ejb@ql.org>2009-10-10 19:32:34 +0200
commit3d5a7a26e2f7aaddb888fdaa8a01711d69722885 (patch)
tree374b20bebd137ffd6cc311f5eb920d76a385ee12
parentec20e494503d08aeccc13f2e3e5aead08092b33d (diff)
downloadqpdf-3d5a7a26e2f7aaddb888fdaa8a01711d69722885.tar.zst
handle external libs in autoconf
git-svn-id: svn+q:///qpdf/trunk@764 71b93d88-0707-0410-a8cf-f5a4172ac649
-rw-r--r--Makefile9
-rw-r--r--README.windows2
-rw-r--r--autoconf.mk.in2
-rw-r--r--configure.ac77
-rw-r--r--external-libs/build.mk5
-rw-r--r--libqpdf/build.mk2
6 files changed, 69 insertions, 28 deletions
diff --git a/Makefile b/Makefile
index 9998dbb9..c65bfb34 100644
--- a/Makefile
+++ b/Makefile
@@ -30,8 +30,7 @@
# install to install in a separate location. This is useful for
# packagers.
-#XXX
-BUILD_ITEMS = manual external-libs libqpdf zlib-flate libtests qpdf examples
+BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf examples
OUTPUT_DIR = build
ALL_TARGETS =
@@ -53,9 +52,9 @@ include autoconf.mk
endif
-#XXX
-##BUILDRULES := libtool
-BUILDRULES := gcc-linux
+ifeq ($(BUILD_EXTERNAL_LIBS),1)
+ BUILD_ITEMS := external-libs $(BUILD_ITEMS)
+endif
# Prevent gnu make from trying to rebuild .dep files
$(foreach B,$(BUILD_ITEMS),$(eval \
diff --git a/README.windows b/README.windows
index 29a717d1..001410f1 100644
--- a/README.windows
+++ b/README.windows
@@ -15,3 +15,5 @@ Basic procedure for building with mingw is to run configure and build
in msys and then run the test suite in cygwin with GENDEPS=0.
Also have to deal with gcc runtime DLL.
+
+./configure --disable-test-compare-images --enable-build-external-libs --with-buildrules=mingw
diff --git a/autoconf.mk.in b/autoconf.mk.in
index ee22bc2c..d59a9e6e 100644
--- a/autoconf.mk.in
+++ b/autoconf.mk.in
@@ -30,3 +30,5 @@ BUILD_HTML=@BUILD_HTML@
BUILD_PDF=@BUILD_PDF@
VALIDATE_DOC=@VALIDATE_DOC@
SKIP_TEST_COMPARE_IMAGES=@SKIP_TEST_COMPARE_IMAGES@
+BUILD_EXTERNAL_LIBS=@BUILD_EXTERNAL_LIBS@
+BUILDRULES=@BUILDRULES@
diff --git a/configure.ac b/configure.ac
index 921bfed1..d6523ff7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,10 +15,29 @@ AC_HEADER_STDC
LT_INIT([win32-dll])
AC_PROG_LIBTOOL
-AC_CHECK_HEADER(zlib.h,,[MISSING_ZLIB_H=1; MISSING_ANY=1])
-AC_SEARCH_LIBS(deflate,z zlib,,[MISSING_ZLIB=1; MISSING_ANY=1])
-AC_CHECK_HEADER(pcre.h,,[MISSING_PCRE_H=1; MISSING_ANY=1])
-AC_SEARCH_LIBS(pcre_compile,pcre,,[MISSING_PCRE=1; MISSING_ANY=1])
+AC_SUBST(BUILD_EXTERNAL_LIBS)
+BUILD_EXTERNAL_LIBS=0
+AC_MSG_CHECKING(for whether to build external libraries)
+AC_ARG_ENABLE(build-external-libs,
+ AS_HELP_STRING([--enable-build-external-libs],
+ [whether to build external libraries]),
+ [if test "$enableval" = "yes"; then
+ BUILD_EXTERNAL_LIBS=1;
+ else
+ BUILD_EXTERNAL_LIBS=0;
+ fi], [BUILD_INTERNAL_LIBS=0])
+if test "$BUILD_INTERNAL_LIBS" = "0"; then
+ AC_MSG_RESULT(no)
+else
+ AC_MSG_RESULT(yes)
+fi
+
+if test "$BUILD_INTERNAL_LIBS" = "0"; then
+ AC_CHECK_HEADER(zlib.h,,[MISSING_ZLIB_H=1; MISSING_ANY=1])
+ AC_SEARCH_LIBS(deflate,z zlib,,[MISSING_ZLIB=1; MISSING_ANY=1])
+ AC_CHECK_HEADER(pcre.h,,[MISSING_PCRE_H=1; MISSING_ANY=1])
+ AC_SEARCH_LIBS(pcre_compile,pcre,,[MISSING_PCRE=1; MISSING_ANY=1])
+fi
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
@@ -80,23 +99,34 @@ else
CFLAGS=$oCFLAGS
fi
-AC_MSG_CHECKING(for whether to use -Werror)
-AC_ARG_ENABLE(werror,
- AS_HELP_STRING([--enable-werror],
- [whether to use werror (default is yes if -Wall works)]),
- [if test "$enableval" = "yes"; then
- qpdf_USE_WERROR=1;
- else
- qpdf_USE_WERROR=0;
- fi], [qpdf_USE_WERROR=$qpdf_USE_WALL])
-if test "$qpdf_USE_WERROR" = "1"; then
- AC_MSG_RESULT(yes)
- CFLAGS="$CFLAGS -Werror"
- CXXFLAGS="$CXXFLAGS -Werror"
-else
- AC_MSG_RESULT(no)
+if test "$BUILD_EXTERNAL_LIBS" = "0"; then
+ AC_MSG_CHECKING(for whether to use -Werror)
+ AC_ARG_ENABLE(werror,
+ AS_HELP_STRING([--enable-werror],
+ [whether to use werror (default is yes if -Wall works)]),
+ [if test "$enableval" = "yes"; then
+ qpdf_USE_WERROR=1;
+ else
+ qpdf_USE_WERROR=0;
+ fi], [qpdf_USE_WERROR=$qpdf_USE_WALL])
+ if test "$qpdf_USE_WERROR" = "1"; then
+ AC_MSG_RESULT(yes)
+ CFLAGS="$CFLAGS -Werror"
+ CXXFLAGS="$CXXFLAGS -Werror"
+ else
+ AC_MSG_RESULT(no)
+ fi
fi
+AC_MSG_CHECKING(which build rules to use)
+AC_SUBST(BUILDRULES)
+AC_ARG_WITH(buildrules,
+ AS_HELP_STRING([--with-buildrules=rules],
+ [which build rules to use; see README]),
+ [BUILDRULES=$withval],
+ [BUILDRULES=libtool])
+AC_MSG_RESULT($BUILDRULES)
+
AC_SUBST(SKIP_TEST_COMPARE_IMAGES)
AC_ARG_ENABLE(test-compare-images,
AS_HELP_STRING([--enable-test-compare-images],
@@ -284,4 +314,13 @@ if test "$MISSING_ANY" = "1"; then
AC_MSG_ERROR(some required prerequisites were not found)
fi
+# Do this last so it doesn't interfere with other tests.
+if test "$BUILD_EXTERNAL_LIBS" = "1"; then
+ if test "$BUILDRULES" = "libtool"; then
+ AC_MSG_ERROR([BUILDRULES=libtool is not supported when building external libraries])
+ fi
+ LDFLAGS="$LDFLAGS -Lexternal-libs/build"
+ LIBS="$LIBS -lexternal"
+fi
+
AC_OUTPUT()
diff --git a/external-libs/build.mk b/external-libs/build.mk
index 5b092481..7c694bbb 100644
--- a/external-libs/build.mk
+++ b/external-libs/build.mk
@@ -1,6 +1,5 @@
TARGETS_external-libs = external-libs/$(OUTPUT_DIR)/libexternal.a
-INCLUDES_external-libs = external-libs/zlib external-libs/pcre \
- external-libs/$(OUTPUT_DIR)
+INCLUDES_external-libs = external-libs/zlib external-libs/pcre
SRCS_external-libs_zlib = \
external-libs/zlib/adler32.c \
@@ -51,7 +50,7 @@ $(OBJS_external-libs_zlib): external-libs/$(OUTPUT_DIR)/%.$(LOBJ): external-libs
$(call c_libcompile,$<,$(INCLUDES_external-libs))
$(OBJS_external-libs_pcre): external-libs/$(OUTPUT_DIR)/%.$(LOBJ): external-libs/pcre/%.c
- $(call c_libcompile,$<,$(INCLUDES_external-libs))
+ $(call c_libcompile,$<,$(INCLUDES_external-libs) external-libs/$(OUTPUT_DIR))
$(TARGETS_external-libs): $(OBJS_external-libs)
$(call makeslib,$(OBJS_external-libs),$(TARGETS_external-libs))
diff --git a/libqpdf/build.mk b/libqpdf/build.mk
index ecda6a25..03408e06 100644
--- a/libqpdf/build.mk
+++ b/libqpdf/build.mk
@@ -2,7 +2,7 @@ TARGETS_libqpdf = libqpdf/$(OUTPUT_DIR)/$(call libname,qpdf)
$(TARGETS_libqpdf): $(TARGETS_external-libs)
-INCLUDES_libqpdf = include libqpdf
+INCLUDES_libqpdf = include libqpdf $(INCLUDES_external-libs)
SRCS_libqpdf = \
libqpdf/BitStream.cc \