| 1 | |
|---|
| 2 | CFLAGS=" -O3 -DNDEBUG -U_DEBUG " |
|---|
| 3 | CFLAGS_UNICODE=" -DUNICODE -D_UNICODE " |
|---|
| 4 | CFLAGS_MSVC=" $CFLAGS -mno-stack-arg-probe -D__USE_MINGW_ANSI_STDIO=0 " |
|---|
| 5 | #CFLAGS_MSVC=" $CFLAGS -mno-stack-arg-probe -D__USE_MINGW_ANSI_STDIO=0 -fno-gnu-linker __MINGW_IMPORT=extern " |
|---|
| 6 | |
|---|
| 7 | # skip LC_MESSAGES |
|---|
| 8 | skip_LC_MESSAGES=no |
|---|
| 9 | |
|---|
| 10 | # POSIX/XSI format strings |
|---|
| 11 | use_POSIX_XSI_format_strings=yes |
|---|
| 12 | |
|---|
| 13 | # --------------------- |
|---|
| 14 | # setup dummy libiconv |
|---|
| 15 | # --------------------- |
|---|
| 16 | rm -fr win_iconv |
|---|
| 17 | mkdir -p win_iconv/include |
|---|
| 18 | mkdir -p win_iconv/lib |
|---|
| 19 | cp iconv.h win_iconv/include/ |
|---|
| 20 | gcc $CFLAGS $CFLAGS_UNICODE -c win_iconv.c -o win_iconv.o |
|---|
| 21 | ar rv win_iconv/lib/libiconv.a win_iconv.o |
|---|
| 22 | |
|---|
| 23 | rm -fr win_iconv-win9x |
|---|
| 24 | mkdir -p win_iconv-win9x/include |
|---|
| 25 | mkdir -p win_iconv-win9x/lib |
|---|
| 26 | cp iconv.h win_iconv-win9x/include/ |
|---|
| 27 | gcc $CFLAGS -c win_iconv.c -o win_iconv-win9x.o |
|---|
| 28 | ar rv win_iconv-win9x/lib/libiconv.a win_iconv-win9x.o |
|---|
| 29 | |
|---|
| 30 | # --------------------- |
|---|
| 31 | # compile libintl |
|---|
| 32 | # --------------------- |
|---|
| 33 | cd recipes/libintl |
|---|
| 34 | rm -rf intl |
|---|
| 35 | autoreconf -i |
|---|
| 36 | cp ../loadmsgcat-windows.h ../bindtextdom-windows.h intl/ |
|---|
| 37 | |
|---|
| 38 | patch --batch --forward -p0 < ../intl.patch |
|---|
| 39 | if [ "$skip_LC_MESSAGES" = "yes" ]; then |
|---|
| 40 | patch --batch --forward -p0 < ../skip-LC_MESSAGES.patch |
|---|
| 41 | fi |
|---|
| 42 | |
|---|
| 43 | objlist="\ |
|---|
| 44 | bindtextdom.o dcgettext.o dgettext.o gettext.o finddomain.o hash-string.o \ |
|---|
| 45 | loadmsgcat.o localealias.o textdomain.o l10nflist.o explodename.o dcigettext.o \ |
|---|
| 46 | dcngettext.o dngettext.o ngettext.o plural.o plural-exp.o localcharset.o lock.o \ |
|---|
| 47 | relocatable.o langprefs.o localename.o version.o tsearch.o log.o \ |
|---|
| 48 | " |
|---|
| 49 | #intl-compat.o |
|---|
| 50 | |
|---|
| 51 | if [ "$use_POSIX_XSI_format_strings" = "yes" ]; then |
|---|
| 52 | objlist="$objlist printf.o" |
|---|
| 53 | fi |
|---|
| 54 | |
|---|
| 55 | # --------------------- |
|---|
| 56 | # msvc(Win9x) |
|---|
| 57 | # --------------------- |
|---|
| 58 | CFLAGS="$CFLAGS_MSVC" ./configure \ |
|---|
| 59 | --with-libiconv-prefix=`pwd`/../../win_iconv-win9x \ |
|---|
| 60 | --with-included-gettext \ |
|---|
| 61 | --enable-threads=win32 && |
|---|
| 62 | cd intl && make clean && make && gcc $CFLAGS_MSVC -c tsearch.c -I.. && cd .. |
|---|
| 63 | |
|---|
| 64 | strip -gx intl/*.o |
|---|
| 65 | mkdir -p ../msvc-win9x-obj |
|---|
| 66 | for obj in $objlist |
|---|
| 67 | do |
|---|
| 68 | cp -f intl/$obj ../msvc-win9x-obj/${obj}bj |
|---|
| 69 | done |
|---|
| 70 | |
|---|
| 71 | # --------------------- |
|---|
| 72 | # msvc |
|---|
| 73 | # --------------------- |
|---|
| 74 | CFLAGS="$CFLAGS_MSVC $CFLAGS_UNICODE" ./configure \ |
|---|
| 75 | --with-libiconv-prefix=`pwd`/../../win_iconv \ |
|---|
| 76 | --with-included-gettext \ |
|---|
| 77 | --enable-threads=win32 && |
|---|
| 78 | cd intl && make clean && make && gcc $CFLAGS_MSVC $CFLAGS_UNICODE -c tsearch.c -I.. && cd .. |
|---|
| 79 | |
|---|
| 80 | strip -gx intl/*.o |
|---|
| 81 | mkdir -p ../msvc-obj |
|---|
| 82 | for obj in $objlist |
|---|
| 83 | do |
|---|
| 84 | cp -f intl/$obj ../msvc-obj/${obj}bj |
|---|
| 85 | done |
|---|
| 86 | |
|---|
| 87 | # --------------------- |
|---|
| 88 | # mingw(Win9x) |
|---|
| 89 | # --------------------- |
|---|
| 90 | CFLAGS="$CFLAGS" ./configure \ |
|---|
| 91 | --with-libiconv-prefix=`pwd`/../../win_iconv-win9x \ |
|---|
| 92 | --with-included-gettext \ |
|---|
| 93 | --enable-threads=win32 && |
|---|
| 94 | cd intl && make clean && make && cp -f libintl.a ../../../libintl-win9x.a && cd .. |
|---|
| 95 | |
|---|
| 96 | # --------------------- |
|---|
| 97 | # mingw |
|---|
| 98 | # --------------------- |
|---|
| 99 | CFLAGS="$CFLAGS $CFLAGS_UNICODE" ./configure \ |
|---|
| 100 | --with-libiconv-prefix=`pwd`/../../win_iconv \ |
|---|
| 101 | --with-included-gettext \ |
|---|
| 102 | --enable-threads=win32 && |
|---|
| 103 | cd intl && make clean && make && cp -f libintl.a ../../../libintl.a && cd .. |
|---|
| 104 | |
|---|
| 105 | # --------------------- |
|---|
| 106 | # compile test |
|---|
| 107 | # --------------------- |
|---|
| 108 | cd ../../samples |
|---|
| 109 | rm -f mingw-sample-win9x.exe mingw-sample.exe |
|---|
| 110 | g++ $CFLAGS -o mingw-sample-win9x.exe sample.cpp ../win_iconv-win9x.o ../libintl-win9x.a -luser32 -lshlwapi |
|---|
| 111 | g++ $CFLAGS $CFLAGS_UNICODE -o mingw-sample.exe sample.cpp ../win_iconv.o ../libintl.a -luser32 -lshlwapi |
|---|
| 112 | ./mingw-sample-win9x > hello-win9x.txt |
|---|
| 113 | ./mingw-sample > hello.txt |
|---|
| 114 | cd .. |
|---|
| 115 | |
|---|