| 1 | #! /bin/sh |
|---|
| 2 | |
|---|
| 3 | # flags to consider: |
|---|
| 4 | # CFLAGS="-O2 -fomit-frame-pointer" |
|---|
| 5 | # CXXFLAGS="-O2 -fno-rtti -fomit-frame-pointer" |
|---|
| 6 | rel=yes |
|---|
| 7 | if test x"$1" = x-t ; then |
|---|
| 8 | rel= |
|---|
| 9 | shift |
|---|
| 10 | fi |
|---|
| 11 | mk=${@-src rpm deb doc alien djgpp mingw} |
|---|
| 12 | if test x"$rel" = xyes ; then |
|---|
| 13 | # Update debian changelog entry if necessary |
|---|
| 14 | # If it does get updated, then the next check will fail... |
|---|
| 15 | ./update-debcl.pl |
|---|
| 16 | # Check everything is checked into CVS |
|---|
| 17 | if ! cvs diff > /dev/null 2> /dev/null ; then |
|---|
| 18 | echo There are changes not checked into CVS - please rectify |
|---|
| 19 | exit 1 |
|---|
| 20 | fi |
|---|
| 21 | # Update ChangeLog |
|---|
| 22 | CVS2CL=./cvs2cl.pl |
|---|
| 23 | if ! test -x $CVS2CL ; then |
|---|
| 24 | CVS2CL=../cvs2cl/cvs2cl.pl |
|---|
| 25 | fi |
|---|
| 26 | if ! test -x $CVS2CL ; then |
|---|
| 27 | echo cvs2cl.pl not found |
|---|
| 28 | exit 1 |
|---|
| 29 | fi |
|---|
| 30 | TAG="`sed 's/^CHANGELOG_FROM_TAG=//p;d' configure.in`" |
|---|
| 31 | # stderr | grep -v '^cvs server: warning: no revision .*/Attic/' |
|---|
| 32 | if ! cvs log -r$TAG:: 2> /dev/null|./fixchangelog.pl $TAG|$CVS2CL --stdin 2> /dev/null ; then |
|---|
| 33 | echo Failed to update ChangeLog from CVS |
|---|
| 34 | exit 1 |
|---|
| 35 | fi |
|---|
| 36 | fi |
|---|
| 37 | if test -f Makefile ; then |
|---|
| 38 | if ! make distclean ; then |
|---|
| 39 | echo make distclean failed |
|---|
| 40 | exit 1 |
|---|
| 41 | fi |
|---|
| 42 | fi |
|---|
| 43 | if test yes = "$rel" ; then |
|---|
| 44 | rm -f config.guess.new config.sub.new |
|---|
| 45 | # only check for new versions if the current ones are over a day old |
|---|
| 46 | perl -e '-M "config.guess" && -M "config.sub" && exit 1' ||\ |
|---|
| 47 | wget ftp://ftp.gnu.org/gnu/config/config.guess -O config.guess.new &&\ |
|---|
| 48 | wget ftp://ftp.gnu.org/gnu/config/config.sub -O config.sub.new &&\ |
|---|
| 49 | chmod 755 config.guess.new config.sub.new &&\ |
|---|
| 50 | mv config.guess.new config.guess && mv config.sub.new config.sub |
|---|
| 51 | fi |
|---|
| 52 | autoreconf --force -i |
|---|
| 53 | export CC |
|---|
| 54 | export CXX |
|---|
| 55 | CC=gcc |
|---|
| 56 | CXX=g++ |
|---|
| 57 | if ! ./configure ; then |
|---|
| 58 | echo configure failed |
|---|
| 59 | exit 1 |
|---|
| 60 | fi |
|---|
| 61 | if test yes = "$rel" ; then |
|---|
| 62 | if ! make dist ; then # distcheck fails extend.tst for some reason! |
|---|
| 63 | echo make distcheck failed |
|---|
| 64 | exit 1 |
|---|
| 65 | fi |
|---|
| 66 | else |
|---|
| 67 | if ! make dist ; then |
|---|
| 68 | echo make dist failed |
|---|
| 69 | exit 1 |
|---|
| 70 | fi |
|---|
| 71 | fi |
|---|
| 72 | if test x"$rel" = xyes && expr "$mk" : '.*\<rpm\>' || test x"$mk" = xrpm ; then |
|---|
| 73 | if rpm --version > /dev/null 2> /dev/null ; then |
|---|
| 74 | if ! make rpm ; then |
|---|
| 75 | echo make rpm failed |
|---|
| 76 | exit 1 |
|---|
| 77 | fi |
|---|
| 78 | else |
|---|
| 79 | echo rpm not installed - skipping rpm generation |
|---|
| 80 | fi |
|---|
| 81 | fi |
|---|
| 82 | if test x"$rel" = xyes && expr "$mk" : '.*\<deb\>' || test x"$mk" = xdeb ; then |
|---|
| 83 | if ! make debian ; then |
|---|
| 84 | echo make debian failed |
|---|
| 85 | exit 1 |
|---|
| 86 | fi |
|---|
| 87 | fi |
|---|
| 88 | if test x"$rel" = xyes && expr "$mk" : '.*\<doc\>' || test x"$mk" = xdoc ; then |
|---|
| 89 | if ! make dos_doc_exe ; then |
|---|
| 90 | echo make dos_doc_exe failed |
|---|
| 91 | exit 1 |
|---|
| 92 | fi |
|---|
| 93 | if ! make riscos_doc_zip ; then |
|---|
| 94 | echo make riscos_doc_zip failed |
|---|
| 95 | exit 1 |
|---|
| 96 | fi |
|---|
| 97 | fi |
|---|
| 98 | if expr "$mk" : '.*\<alien\>'; then |
|---|
| 99 | if ! make alien_src_zip ; then |
|---|
| 100 | echo make alien_src_zip failed |
|---|
| 101 | exit 1 |
|---|
| 102 | fi |
|---|
| 103 | fi |
|---|
| 104 | if ! make distclean ; then |
|---|
| 105 | echo make distclean failed |
|---|
| 106 | exit 1 |
|---|
| 107 | fi |
|---|
| 108 | unset CC |
|---|
| 109 | unset CXX |
|---|
| 110 | if expr "$mk" : '.*\<djgpp\>'; then |
|---|
| 111 | build_platform=`sh config.guess` |
|---|
| 112 | SAVE_PATH="$PATH" |
|---|
| 113 | # for building on mrs30 |
|---|
| 114 | if test -d /opt/crosstools/i386-pc-msdosdjgpp ; then |
|---|
| 115 | PATH=/opt/crosstools/i386-pc-msdosdjgpp/bin:/opt/crosstools/bin:$PATH |
|---|
| 116 | fi |
|---|
| 117 | if ! ./configure --host=i386-pc-msdosdjgpp --build="$build_platform" --with-x=no --disable-aven LDFLAGS=-s STRIP=echo CAVEROT=caverot.exe CRLIB=-lalleg CROBJX=dosrot.o ; then |
|---|
| 118 | echo djgpp configure failed |
|---|
| 119 | exit 1 |
|---|
| 120 | fi |
|---|
| 121 | if ! make ; then |
|---|
| 122 | echo djgpp make failed |
|---|
| 123 | exit 1 |
|---|
| 124 | fi |
|---|
| 125 | if ! make djgpp_exe ; then |
|---|
| 126 | echo djgpp make djgpp_exe failed |
|---|
| 127 | exit 1 |
|---|
| 128 | fi |
|---|
| 129 | if ! make distclean ; then |
|---|
| 130 | echo make distclean failed |
|---|
| 131 | exit 1 |
|---|
| 132 | fi |
|---|
| 133 | PATH="$SAVE_PATH" |
|---|
| 134 | fi |
|---|
| 135 | if expr "$mk" : '.*\<mingw\>'; then |
|---|
| 136 | test -n "$build_platform" || build_platform=`sh config.guess` |
|---|
| 137 | SAVE_PATH="$PATH" |
|---|
| 138 | if test -d /usr/local/cross-tools/i386-mingw32msvc/bin ; then |
|---|
| 139 | # binaries from http://www.devolution.com/~slouken/SDL/Xmingw32/ |
|---|
| 140 | PATH=/usr/local/cross-tools/bin:/usr/local/cross-tools/i386-mingw32msvc/bin:$PATH |
|---|
| 141 | else |
|---|
| 142 | if test -d /usr/i586-mingw32msvc/bin ; then |
|---|
| 143 | # debian mingw32 package |
|---|
| 144 | PATH=/usr/i586-mingw32msvc/bin:$PATH |
|---|
| 145 | CC=/usr/bin/i586-mingw32msvc-gcc |
|---|
| 146 | export CC |
|---|
| 147 | CXX=/usr/bin/i586-mingw32msvc-g++ |
|---|
| 148 | export CXX |
|---|
| 149 | else |
|---|
| 150 | # variant of debian mingw32 package? |
|---|
| 151 | PATH=/usr/i386-mingw32msvc/bin:$PATH |
|---|
| 152 | CC=/usr/bin/i386-mingw32msvc-gcc |
|---|
| 153 | export CC |
|---|
| 154 | CXX=/usr/bin/i386-mingw32msvc-g++ |
|---|
| 155 | export CXX |
|---|
| 156 | fi |
|---|
| 157 | fi |
|---|
| 158 | wxc=wxmsw-2.5-config |
|---|
| 159 | for a in /usr/i586-mingw32msvc/bin/wx-config ; do |
|---|
| 160 | test -x "$a" && wxc="$a" |
|---|
| 161 | done |
|---|
| 162 | LDFLAGS= |
|---|
| 163 | CPPFLAGS= |
|---|
| 164 | if test -d /opt/rx-win32 ; then |
|---|
| 165 | LDFLAGS=-L/opt/rx-win32/lib |
|---|
| 166 | CPPFLAGS=-I/opt/rx-win32/include |
|---|
| 167 | fi |
|---|
| 168 | if ! ./configure --host=mingw32 --build="$build_platform" --with-x=no CAVEROT= WXCONFIG="$wxc" LDFLAGS="-s $LDFLAGS" CPPFLAGS="$CPPFLAGS" ; then |
|---|
| 169 | echo mingw configure failed |
|---|
| 170 | exit 1 |
|---|
| 171 | fi |
|---|
| 172 | if ! make ; then |
|---|
| 173 | echo mingw make failed |
|---|
| 174 | exit 1 |
|---|
| 175 | fi |
|---|
| 176 | if ! make mingw_iss ; then |
|---|
| 177 | echo mingw make mingw_iss failed |
|---|
| 178 | exit 1 |
|---|
| 179 | fi |
|---|
| 180 | if ! make distclean ; then |
|---|
| 181 | echo make distclean failed |
|---|
| 182 | exit 1 |
|---|
| 183 | fi |
|---|
| 184 | PATH="$SAVE_PATH" |
|---|
| 185 | CC= |
|---|
| 186 | CXX= |
|---|
| 187 | fi |
|---|