#! /bin/sh -e UPSTREAM_VERSION=2.25 PACKAGE_VERSION=${UPSTREAM_VERSION}.4 BINDIR=nsis-${UPSTREAM_VERSION} SRCDIR=nsis-${UPSTREAM_VERSION}-src URLDIR=http://superb-west.dl.sourceforge.net/sourceforge/nsis/ DSTDIR=`pwd`/nsis-tmp BINFILE=${BINDIR}.zip SRCFILE=${SRCDIR}.tar.bz2 PATH=/opt/hp-gcc/bin:/bin:/usr/bin:/sbin:/usr/sbin:/opt/vzb/bin:/opt/vzb/sbin:/usr/ccs/bin rm -fr $BINDIR $SRCDIR $DSTDIR for i in $BINFILE $SRCFILE do test -f $i || curl -O $URLDIR/$i done /usr/local/bin/unzip $BINFILE /usr/local/bin/bunzip2 < $SRCFILE | tar xvf - cd nsis-${UPSTREAM_VERSION}-src cp SCons/Config/default SCons/Config/hpux (cd ../ ; cat $0) | /opt/vzb/bin/patch -p0 scons \ SKIPSTUBS=all \ SKIPPLUGINS=all \ SKIPUTILS=all \ SKIPMISC=all \ PREFIX_BIN=/opt/vzb/bin \ PREFIX=/opt/vzb \ PREFIX_CONF=/etc/opt/vzb \ PREFIX_DEST=$DSTDIR \ install-compiler cd ../ mkdir -p $DSTDIR/etc/opt/vzb mkdir -p $DSTDIR/opt/vzb/share/nsis mv nsis-${UPSTREAM_VERSION}/nsisconf.nsh $DSTDIR/etc/opt/vzb/. mv nsis-${UPSTREAM_VERSION}/Bin $DSTDIR/opt/vzb/share/nsis/. mv nsis-${UPSTREAM_VERSION}/Stubs $DSTDIR/opt/vzb/share/nsis/. mv nsis-${UPSTREAM_VERSION}/Include $DSTDIR/opt/vzb/share/nsis/. mv nsis-${UPSTREAM_VERSION}/Plugins $DSTDIR/opt/vzb/share/nsis/. mv nsis-${UPSTREAM_VERSION}/Contrib $DSTDIR/opt/vzb/share/nsis/. mv nsis-${UPSTREAM_VERSION}/Docs $DSTDIR/opt/vzb/share/nsis/. mv nsis-${UPSTREAM_VERSION}/Examples $DSTDIR/opt/vzb/share/nsis/. $(dirname $0)/make-depot --prefix=$DSTDIR/opt/vzb --sysconfdir=$DSTDIR/etc/opt/vzb --package=nsis --revision=${PACKAGE_VERSION} --source-url=http://nsis.sf.net/ exit 0 --- SCons/Config/hpux 2007-03-02 11:17:07.000000000 +0000 +++ SCons/Config/hpux 2007-04-23 16:00:05.000000000 +0000 @@ -1,7 +1,20 @@ -print "Using default tools configuration" +print "Using hpux tools configuration" Import('defenv') +### fix scons + +defenv['CC'] = defenv['CXX'] + ' -Ae' + +### required to build makensis + +defenv.Append(LINKFLAGS = '+DD32') +defenv.Append(LINKFLAGS = '-mt') +defenv.Append(LINKFLAGS = '+u1') +defenv.Append(CCFLAGS = '+DD32') +defenv.Append(CCFLAGS = '-mt') +defenv.Append(CCFLAGS = '+u1') + ### flags defenv['ENTRY_FLAG'] = lambda x: '' --- SConstruct 2007-03-12 10:07:34.000000000 +0000 +++ SConstruct 2007-04-23 16:06:26.000000000 +0000 @@ -319,6 +319,8 @@ if 'msvc' in tools or 'mstoolkit' in tools: envs = SConscript('SCons/Config/ms') +elif 'hpc++' in tools: + envs = SConscript('SCons/Config/hpux') elif 'gcc' in tools: envs = SConscript('SCons/Config/gnu') else: --- Source/Platform.h 2007-04-23 16:23:38.000000000 +0000 +++ Source/Platform.h 2007-04-23 16:27:44.000000000 +0000 @@ -84,6 +84,11 @@ typedef DWORDLONG ULONGLONG,*PULONGLONG; #endif +#ifdef _BIG_ENDIAN +# ifndef __BIG_ENDIAN__ +# define __BIG_ENDIAN__ +# endif +#endif #ifndef __BIG_ENDIAN__ # define FIX_ENDIAN_INT32_INPLACE(x) ((void)(x)) # define FIX_ENDIAN_INT32(x) (x) @@ -798,8 +798,13 @@ typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; #endif -#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b -#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b +#ifndef __BIG_ENDIAN__ +# define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b +# define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b +#else +# define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x0b01 +# define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x0b02 +#endif typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; --- Source/Plugins.cpp 2007-01-13 17:28:13.000000000 +0000 +++ Source/Plugins.cpp 2007-04-20 23:21:40.000000000 +0000 @@ -69,7 +69,7 @@ file.seekg(0, ios::end); ifstream::pos_type result = file.tellg(); - assert(result >= 0); + assert(result >= (ifstream::pos_type)0); file.seekg(pos); --- Source/ResourceEditor.cpp 2007-02-17 15:11:33.000000000 +0000 +++ Source/ResourceEditor.cpp 2007-04-20 23:21:40.000000000 +0000 @@ -27,6 +27,10 @@ #define ALIGN(dwToAlign, dwAlignOn) dwToAlign = (dwToAlign%dwAlignOn == 0) ? dwToAlign : dwToAlign - (dwToAlign%dwAlignOn) + dwAlignOn #define RALIGN(dwToAlign, dwAlignOn) ((dwToAlign%dwAlignOn == 0) ? dwToAlign : dwToAlign - (dwToAlign%dwAlignOn) + dwAlignOn) +static inline ULONG ConvertEndianness(ULONG u) { + return FIX_ENDIAN_INT32(u); +} + static inline DWORD ConvertEndianness(DWORD d) { return FIX_ENDIAN_INT32(d); }