From cfc1f6fcac1f55aaca02792c69f130e6fde5c2d5 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 23 Oct 2009 16:44:13 +0000 Subject: [PATCH] notes, version git-svn-id: svn+q:///qpdf/trunk@893 71b93d88-0707-0410-a8cf-f5a4172ac649 --- README.maintainer | 18 ++++++++++++++++++ README.windows | 34 +++++++++++++++++++++++++++++++--- TODO | 44 +++++++++++++++++++++----------------------- configure.ac | 10 +++++----- 4 files changed, 75 insertions(+), 31 deletions(-) diff --git a/README.maintainer b/README.maintainer index 28fb6119..ca922f00 100644 --- a/README.maintainer +++ b/README.maintainer @@ -37,11 +37,29 @@ Release Reminders internally testing releases, you can run make_dist with the --no-tests option. + * To create a source release of external libs, do an export from the + version control system into a directory called qpdf-external-libs + and just make a zip file of the result called + qpdf-external-libs-src.zip. See the README.txt file there for + information on creating binary external libs releases. + + * To create Windows binary releases, extract the qpdf source + distribution in Windows (MSYS + MINGW, MSVC) and run + ./make_windows_releases from there. You will have to manually + create zip files from the install-mingw and install-msys + directories; instructions are echoed by the script. + + * Remember to copy README-what-to-download.txt separately onto the + download area and make it the default for Windows platforms. + * Remember to update documentation in the "files" subdirectory of the website on sourceforge.net. * Create a tag in the version control system. + * When releasing on source forge, external-libs distributions go in + external-libs/yyyymmdd, and qpdf distributions go in qpdf/vvv + General Build Stuff =================== diff --git a/README.windows b/README.windows index 8ef78c81..ac02c95e 100644 --- a/README.windows +++ b/README.windows @@ -12,14 +12,42 @@ want to run them, you need ghostscript and tiff utils as well. Then omit --disable-test-compare-images from the configure statements given below. The image comparison tests have not been tried under MSYS. + +External Libraries +================== + +In order to build qpdf, you must have copies of zlib and pcre. The +easy way to get them is to download them from the qpdf download area. +There are packages called external-libs-bin.zip and +external-libs-src.zip. If you are building with MSVC 9 (.NET 2008) or +MINGW 4.4, you can just extract the external-libs-bin.zip zip file +into the top-level qpdf source tree. It will create a directory +called external-libs which contains header files and precompiled +libraries. Passing --enable-external-libs to ./configure (which is +done automatically if you follow the instructions below) is sufficient +to find them. + +You can also obtain pcre and zlib directly on your own and install +them. If you are using mingw, you can just set CPPFLAGS, LDFLAGS, and +LIBS when you run ./configure so that it can find the header files and +libraries. If you are building with msvc and you want to do this, it +probably won't work because ./configure doesn't know how to interpret +LDFLAGS and LIBS properly for MSVC (though qpdf's own build system +does). In this case, you can probably get away with cheating by +passing --enable-external-libs to ./configure and then just editing +CPPFLAGS, LDFLAGS, LIBS in the generated autoconf.mk file. Note that +you should use UNIX-like syntax (-I, -L, -l) even though this is not +what cl takes on the command line. qpdf's build rules will fix it. + + Building with MinGW =================== QPDF is known to build and pass its test suite with MSYS-1.0.11 and gcc 4.4.0 with C++ support. If you also have ActiveState Perl in your -path, you can fully configure, build, and test qpdf in this -environment. You will most likely not be able to build qpdf with -mingw using cygwin. +path and the external-libs distribution described above, you can fully +configure, build, and test qpdf in this environment. You will most +likely not be able to build qpdf with mingw using cygwin. From your MSYS prompt, run diff --git a/TODO b/TODO index 1f85126f..d07694f5 100644 --- a/TODO +++ b/TODO @@ -8,36 +8,34 @@ * Write documentation section on source-level API changes between 2.0 and 2.1. + * Add comments for the security functions that map them back to the + items in Adobe's products. + * Create the following packages: - - qpdf source package - - - external-libs-src.zip -- includes build.sh, clean.sh, clwrap, - and dist; from ../external-libs - - - external-libs-bin.zip -- precompiled external libraries - - - qpdf-bin-mingw.zip -- qpdf executable, dll, and development - files built with mingw - - - qpdf-bin-msvc.zip -- qpdf executable, dll, and development files - built with msvc - - README-what-to-download.txt -- descriptions of what to download on Windows, etc. - * Windows release: config for both compilers, make install. Create - zip files. Probably should put the compiler name somewhere in the - directory (qpdf-version-compiler?). Need some kind of "what to - download" file. Remember external-libs in installation....zlib.h - at least is needed. + * make_windows_releases: - * Make sure the scripts in external-libs are distributed. We only - don't want the dists distributed. Rework as necessary. The end - user should be able to reproduce this whole thing. + - make sure external-libs exists; if not, tell the user to extract + it - * Add comments for the security functions that map them back to the - items in Adobe's products. + - set path to include libqpdf/build + + - ./config-mingw; make check install + + - make distclean + + - ./config-msvc; make check install + + - instruct the user to create qpdf-vvv-bin-mingw.zip and + qpdf-vvv-bin-msvc.zip from the contents of the install-mingw and + install-msys directories. + + *** still have to make sure libqpdf.a/qpdf.lib doesn't have to be + in the same directory as the dll, but I'm pretty sure it + doesn't. * "Delphi wrapper unit 'qpdf.pas' created by Zarko Gajic (http://delphi.about.com). .. use at your own risk and for whatever diff --git a/configure.ac b/configure.ac index 1807d97c..94a1130d 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. dnl This config.in requires autoconf 2.5 or greater. AC_PREREQ(2.60) -AC_INIT(qpdf,2.1.a1) +AC_INIT(qpdf,2.1.rc1) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_FILES([autoconf.mk]) @@ -110,7 +110,7 @@ if test "$BUILDRULES" != "msvc"; then fi fi -if test "$USE_EXTERNAL_LIBS" = "0"; then +if test "$BUILDRULES" != "msvc"; then AC_MSG_CHECKING(for whether to use -Werror) AC_ARG_ENABLE(werror, AS_HELP_STRING([--enable-werror], @@ -318,9 +318,9 @@ fi # Do this last so it doesn't interfere with other tests. if test "$USE_EXTERNAL_LIBS" = "1"; then - if test "$BUILDRULES" = "libtool"; then - AC_MSG_ERROR([BUILDRULES=libtool is not supported when building external libraries]) - fi + # Don't actually check for the presence of this -- we document that + # the user can run this and then edit autoconf.mk if they have too + # much trouble getting it to work with a different compiler. CPPFLAGS="$CPPFLAGS -Iexternal-libs/include" LDFLAGS="$LDFLAGS -Lexternal-libs/lib-$BUILDRULES" LIBS="$LIBS -lz -lpcre"