mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-22 10:58:58 +00:00
Adjust Windows built to support 32-bit and 64-bit builds
Update the build to support new external-libs layout, and autoconf options to specify windows word size. Split make_windows_releases into multiple scripts.
This commit is contained in:
parent
85d9e7dfed
commit
c833295a39
@ -20,6 +20,9 @@ CXX=@CXX@
|
|||||||
CXXFLAGS=@CXXFLAGS@
|
CXXFLAGS=@CXXFLAGS@
|
||||||
AR=@AR@
|
AR=@AR@
|
||||||
RANLIB=@RANLIB@
|
RANLIB=@RANLIB@
|
||||||
|
DLLTOOL=@DLLTOOL@
|
||||||
|
STRIP=@STRIP@
|
||||||
|
OBJDUMP=@OBJDUMP@
|
||||||
GENDEPS=@GENDEPS@
|
GENDEPS=@GENDEPS@
|
||||||
LIBTOOL=@LIBTOOL@
|
LIBTOOL=@LIBTOOL@
|
||||||
DOCBOOKX_DTD=@DOCBOOKX_DTD@
|
DOCBOOKX_DTD=@DOCBOOKX_DTD@
|
||||||
@ -32,3 +35,4 @@ VALIDATE_DOC=@VALIDATE_DOC@
|
|||||||
SKIP_TEST_COMPARE_IMAGES=@SKIP_TEST_COMPARE_IMAGES@
|
SKIP_TEST_COMPARE_IMAGES=@SKIP_TEST_COMPARE_IMAGES@
|
||||||
BUILDRULES=@BUILDRULES@
|
BUILDRULES=@BUILDRULES@
|
||||||
HAVE_LD_VERSION_SCRIPT=@HAVE_LD_VERSION_SCRIPT@
|
HAVE_LD_VERSION_SCRIPT=@HAVE_LD_VERSION_SCRIPT@
|
||||||
|
WINDOWS_WORDSIZE=@WINDOWS_WORDSIZE@
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
./configure --disable-test-compare-images --enable-external-libs --with-buildrules=mingw
|
./configure --disable-test-compare-images --enable-external-libs --with-windows-wordsize=32 --with-buildrules=mingw
|
10
config-mingw64
Normal file
10
config-mingw64
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
./configure --disable-test-compare-images --enable-external-libs --with-windows-wordsize=64 --with-buildrules=mingw \
|
||||||
|
CC=x86_64-w64-mingw32-gcc \
|
||||||
|
CXX=x86_64-w64-mingw32-g++ \
|
||||||
|
LD=x86_64-w64-mingw32-ld \
|
||||||
|
AR=x86_64-w64-mingw32-ar \
|
||||||
|
RANLIB=x86_64-w64-mingw32-ranlib \
|
||||||
|
DLLTOOL=x86_64-w64-mingw32-dlltool \
|
||||||
|
STRIP=x86_64-w64-mingw32-strip \
|
||||||
|
OBJDUMP=x86_64-w64-mingw32-objdump
|
11
config-msvc
11
config-msvc
@ -1,2 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
CC=cl CXX="cl -TP -GR" ./configure --disable-test-compare-images --enable-external-libs --with-buildrules=msvc
|
wordsize=$1
|
||||||
|
if ! test "$wordsize" = "32" -o "$wordsize" = "64"; then
|
||||||
|
echo "Usage: $0 {32,64}"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
objdump=
|
||||||
|
if test "$wordsize" = "64"; then
|
||||||
|
objdump=OBJDUMP=x86_64-w64-mingw32-objdump
|
||||||
|
fi
|
||||||
|
CC=cl CXX="cl -TP -GR" ./configure --disable-test-compare-images --enable-external-libs --with-windows-wordsize=$wordsize --with-buildrules=msvc $objdump
|
||||||
|
17
configure.ac
17
configure.ac
@ -31,6 +31,21 @@ else
|
|||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
WINDOWS_WORDSIZE=
|
||||||
|
AC_SUBST(WINDOWS_WORDSIZE)
|
||||||
|
AC_ARG_WITH(windows-wordsize,
|
||||||
|
AS_HELP_STRING([--with-windows-wordsize={32,64}],
|
||||||
|
[Windows only: whether this is a 32-bit or 64-bit build; required if external-libs are enabled]),
|
||||||
|
[WINDOWS_WORDSIZE=$withval],
|
||||||
|
[WINDOWS_WORDSIZE=none])
|
||||||
|
if test "$USE_EXTERNAL_LIBS" = "1"; then
|
||||||
|
AC_MSG_CHECKING(for windows wordsize)
|
||||||
|
AC_MSG_RESULT($WINDOWS_WORDSIZE)
|
||||||
|
if ! test "$WINDOWS_WORDSIZE" = "32" -o "$WINDOWS_WORDSIZE" = "64"; then
|
||||||
|
AC_MSG_ERROR(Windows wordsize of 32 or 64 must be specified if external libs are being used.)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$BUILD_INTERNAL_LIBS" = "0"; then
|
if test "$BUILD_INTERNAL_LIBS" = "0"; then
|
||||||
AC_CHECK_HEADER(zlib.h,,[MISSING_ZLIB_H=1; MISSING_ANY=1])
|
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_SEARCH_LIBS(deflate,z zlib,,[MISSING_ZLIB=1; MISSING_ANY=1])
|
||||||
@ -378,7 +393,7 @@ if test "$USE_EXTERNAL_LIBS" = "1"; then
|
|||||||
# the user can run this and then edit autoconf.mk if they have too
|
# the user can run this and then edit autoconf.mk if they have too
|
||||||
# much trouble getting it to work with a different compiler.
|
# much trouble getting it to work with a different compiler.
|
||||||
CPPFLAGS="$CPPFLAGS -Iexternal-libs/include"
|
CPPFLAGS="$CPPFLAGS -Iexternal-libs/include"
|
||||||
LDFLAGS="$LDFLAGS -Lexternal-libs/lib-$BUILDRULES"
|
LDFLAGS="$LDFLAGS -Lexternal-libs/lib-$BUILDRULES$WINDOWS_WORDSIZE"
|
||||||
LIBS="$LIBS -lz -lpcre"
|
LIBS="$LIBS -lz -lpcre"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -7,19 +7,19 @@ use File::Basename;
|
|||||||
|
|
||||||
my $whoami = basename($0);
|
my $whoami = basename($0);
|
||||||
|
|
||||||
usage() unless @ARGV == 2;
|
usage() unless @ARGV == 3;
|
||||||
my ($file, $destdir) = @ARGV;
|
my ($file, $destdir, $objdump) = @ARGV;
|
||||||
my $filedir = dirname($file);
|
my $filedir = dirname($file);
|
||||||
|
|
||||||
my %dlls = ();
|
my %dlls = ();
|
||||||
open(O, "objdump -p $file|") or die "$whoami: can't run objdump\n";
|
open(O, "$objdump -p $file|") or die "$whoami: can't run objdump\n";
|
||||||
while (<O>)
|
while (<O>)
|
||||||
{
|
{
|
||||||
if (m/^\s+DLL Name:\s+(.+\.dll)/i)
|
if (m/^\s+DLL Name:\s+(.+\.dll)/i)
|
||||||
{
|
{
|
||||||
my $dll = $1;
|
my $dll = $1;
|
||||||
$dll =~ tr/A-Z/a-z/;
|
$dll =~ tr/A-Z/a-z/;
|
||||||
next if $dll =~ m/^(kernel32|msvcrt)\.dll$/;
|
next if $dll =~ m/^(kernel32|user32|msvcrt)\.dll$/;
|
||||||
$dlls{$dll} = 1;
|
$dlls{$dll} = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ installwin: all
|
|||||||
mkdir $(DEST)/doc
|
mkdir $(DEST)/doc
|
||||||
cp libqpdf/$(OUTPUT_DIR)/$(STATIC_LIB_NAME) $(DEST)/lib
|
cp libqpdf/$(OUTPUT_DIR)/$(STATIC_LIB_NAME) $(DEST)/lib
|
||||||
cp libqpdf/$(OUTPUT_DIR)/qpdf*.dll $(DEST)/bin
|
cp libqpdf/$(OUTPUT_DIR)/qpdf*.dll $(DEST)/bin
|
||||||
perl copy_dlls libqpdf/$(OUTPUT_DIR)/qpdf*.dll $(DEST)/bin
|
perl copy_dlls libqpdf/$(OUTPUT_DIR)/qpdf*.dll $(DEST)/bin $(OBJDUMP)
|
||||||
cp qpdf/$(OUTPUT_DIR)/qpdf.exe $(DEST)/bin
|
cp qpdf/$(OUTPUT_DIR)/qpdf.exe $(DEST)/bin
|
||||||
cp zlib-flate/$(OUTPUT_DIR)/zlib-flate.exe $(DEST)/bin
|
cp zlib-flate/$(OUTPUT_DIR)/zlib-flate.exe $(DEST)/bin
|
||||||
cp qpdf/fix-qdf $(DEST)/bin
|
cp qpdf/fix-qdf $(DEST)/bin
|
||||||
|
@ -62,7 +62,7 @@ endef
|
|||||||
# 1 2 3 4 5 6 7
|
# 1 2 3 4 5 6 7
|
||||||
# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age)
|
# Usage: $(call makelib,objs,library,ldflags,libs,current,revision,age)
|
||||||
define makelib
|
define makelib
|
||||||
dlltool -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(shell expr $(5) - $(7)).dll) $(1); \
|
$(DLLTOOL) -l $(2) -D $$(basename `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(shell expr $(5) - $(7)).dll) $(1); \
|
||||||
$(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(shell expr $(5) - $(7)).dll \
|
$(CXX) -shared -o `echo $(2) | sed -e 's,/lib\(.*\).a,/\1,'`$(shell expr $(5) - $(7)).dll \
|
||||||
$(1) $(3) $(4)
|
$(1) $(3) $(4)
|
||||||
endef
|
endef
|
||||||
@ -75,9 +75,9 @@ endef
|
|||||||
|
|
||||||
# Install target
|
# Install target
|
||||||
|
|
||||||
INSTALL_DIR = install-mingw
|
INSTALL_DIR = install-mingw$(WINDOWS_WORDSIZE)
|
||||||
STATIC_LIB_NAME = libqpdf.a
|
STATIC_LIB_NAME = libqpdf.a
|
||||||
include make/installwin.mk
|
include make/installwin.mk
|
||||||
install: installwin
|
install: installwin
|
||||||
strip $(DEST)/bin/*.exe
|
$(STRIP) $(DEST)/bin/*.exe
|
||||||
strip $(DEST)/bin/*.dll
|
$(STRIP) $(DEST)/bin/*.dll
|
||||||
|
@ -101,7 +101,7 @@ endef
|
|||||||
|
|
||||||
# Install target
|
# Install target
|
||||||
|
|
||||||
INSTALL_DIR = install-msvc
|
INSTALL_DIR = install-msvc$(WINDOWS_WORDSIZE)
|
||||||
STATIC_LIB_NAME = qpdf.lib
|
STATIC_LIB_NAME = qpdf.lib
|
||||||
include make/installwin.mk
|
include make/installwin.mk
|
||||||
install: installwin
|
install: installwin
|
||||||
|
@ -9,29 +9,19 @@ set -x
|
|||||||
cwd=`pwd`
|
cwd=`pwd`
|
||||||
PATH=$cwd/libqpdf/build:$PATH
|
PATH=$cwd/libqpdf/build:$PATH
|
||||||
|
|
||||||
rm -rf install-mingw install-msvc
|
rm -rf install-mingw* install-msvc*
|
||||||
|
|
||||||
./config-mingw
|
./config-mingw64
|
||||||
make check install
|
make check install
|
||||||
make distclean
|
make distclean
|
||||||
./config-msvc
|
./config-mingw32
|
||||||
make check install
|
make check install
|
||||||
make distclean
|
make distclean
|
||||||
|
|
||||||
cd install-mingw
|
|
||||||
v=`ls -d qpdf-*`
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
cp -p README-windows-install.txt install-mingw/$v/README.txt
|
|
||||||
cp -p README-windows-install.txt install-msvc/$v/README.txt
|
|
||||||
|
|
||||||
cd install-mingw
|
|
||||||
zip -r ../$v-bin-mingw.zip $v
|
|
||||||
cd ../install-msvc
|
|
||||||
zip -r ../$v-bin-msvc.zip $v
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
set +x
|
set +x
|
||||||
|
|
||||||
echo ""
|
echo ''
|
||||||
echo "$v-bin-mingw.zip and $v-bin-msvc.zip have been created."
|
echo 'Now run "./make_windows_releases-msvc 64" in a 64-bit MSVC environment'
|
||||||
|
echo 'and "./make_windows_releases-msvc 32" in a 32-bit MSVC environment.'
|
||||||
|
echo 'Then run "./make_windows_releases-msvc-finish".'
|
||||||
|
echo ''
|
||||||
|
24
make_windows_releases-finish
Executable file
24
make_windows_releases-finish
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ ! -d external-libs ]; then
|
||||||
|
echo "Please extract qpdf-external-libs-bin.zip and try again"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
cwd=`pwd`
|
||||||
|
PATH=$cwd/libqpdf/build:$PATH
|
||||||
|
|
||||||
|
cd install-mingw32
|
||||||
|
v=`ls -d qpdf-*`
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
for i in mingw32 mingw64 msvc32 msvc64; do
|
||||||
|
cp -p README-windows-install.txt install-$i/$v/README.txt
|
||||||
|
(cd install-$i; zip -r ../$v-bin-$i.zip $v)
|
||||||
|
done
|
||||||
|
|
||||||
|
set +x
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "$v-bin-mingw{32,64}.zip and $v-bin-msvc{32,64}.zip have been created."
|
21
make_windows_releases-msvc
Executable file
21
make_windows_releases-msvc
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
if [ ! -d external-libs ]; then
|
||||||
|
echo "Please extract qpdf-external-libs-bin.zip and try again"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
w=$1
|
||||||
|
|
||||||
|
if [ "$w" = "" ]; then
|
||||||
|
echo "Usage: $0 {32|64}"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
cwd=`pwd`
|
||||||
|
PATH=$cwd/libqpdf/build:$PATH
|
||||||
|
|
||||||
|
./config-msvc $w
|
||||||
|
make check install
|
||||||
|
make distclean
|
Loading…
Reference in New Issue
Block a user