removed some OS/2 remnants
[k8jam.git] / 0build_common.sh
blobcbfcda92c3e5a2320ea4e2e181f8c64958afad55
1 #!/bin/sh
4 # $1: file w/o extension
5 # $2: src path (optional)
6 docc() {
7 ptmp="$2"
8 echo "Cc $1.c"
9 if [ "z$ptmp" = "z" ]; then
10 ptmp="src"
12 ${CC} -DNDEBUG -std=gnu99 -c -o ${BUILDPATH}/obj/$1.o ${CFLAGS} -Isrc ${ADDITIONAL_INCLUDES} $ptmp/$1.c
16 # $1: file w/o extension
17 # $2: dst path (optional)
18 # $3: liblist
19 dolink() {
20 fname="$1"
21 ptmp="$2"
22 shift
23 echo "Link ${fname}"
24 if [ "z$ptmp" = "z" ]; then
25 ptmp="${BUILDPATH}"
26 else
27 shift
29 ${LINK} ${LINKFLAGS} -o $ptmp/${fname}${EXESFX} ${BUILDPATH}/obj/${fname}.o $* ${LINKLIBS}
30 if [ "z$WINE" != "z" ]; then
31 chmod 711 $ptmp/${fname}${EXESFX}
36 donativecc() {
37 OCC="$CC"
38 CC=gcc
39 docc $*
40 CC="$OCC"
44 donativelink() {
45 OLINK="$LINK"
46 OLINKFLAGS="$LINKFLAGS"
47 OLINKLIBS="$LINKLIBS"
48 LINK=gcc
49 LINKFLAGS=-s
50 LINKLIBS=""
51 dolink $*
52 LINK="$OLINK"
53 LINKFLAGS="$OLINKFLAGS"
54 LINKLIBS="$OLINKLIBS"
58 srclist="\
59 bjprng
60 builtins
61 command
62 compile
63 execcmd
64 filent
65 fileunix
66 pathsys
67 expand
68 hash
69 headers
70 hcache
71 jbunpack
72 lists
73 make
74 make1
75 matchglob
76 newstr
77 option
78 parse
79 progress
80 re9
81 rules
82 scan
83 search
84 timestamp
85 variable
86 hdrmacro
87 kstrings"
89 echo "building K8Jam..."
91 mkdir -p ${BUILDPATH} 2>/dev/null
92 rm -rf ${BUILDPATH}/* 2>/dev/null
93 mkdir -p ${BUILDPATH}/obj 2>/dev/null
95 mkdir -p ${DESTPATH} 2>/dev/null
96 rm -rf ${DESTPATH}/* 2>/dev/null
98 donativecc "unigen"
99 donativelink "unigen"
100 echo "unigen"
101 ${BUILDPATH}/unigen${EXESFX} ${BUILDPATH}/re9_unicode_mapping.c unidata/UnicodeData.txt
103 donativecc "lemon"
104 donativelink "lemon"
105 echo "Lemon jamgram"
106 tools/yyacc src/jamgram.lemon src/jamgramtab.h src/jamgram.yy
107 ${BUILDPATH}/lemon${EXESFX} src/jamgram.c src/jamgram.lemon
108 #rm ${BUILDPATH}/lemon${EXESFX}
109 docc "jamgram"
111 libobj="${BUILDPATH}/obj/jamgram.o"
112 for srcf in ${srclist}; do
113 docc "${srcf}"
114 libobj="${libobj} ${BUILDPATH}/obj/${srcf}.o"
115 done
117 echo "Ar libjam.a"
118 ${AR} ${BUILDPATH}/obj/libjam.a ${libobj}
119 if [ "z${RANLIB}" != "z" ]; then
120 echo "Ranlib libjam.a"
121 ${RANLIB} ${BUILDPATH}/obj/libjam.a
123 rm -f ${libobj}
125 docc "jam"
127 donativecc "mkjambase"
128 donativelink "mkjambase"
129 echo "preparing Jambase"
130 ${BUILDPATH}/mkjambase${EXESFX} src/jambase.c defaults/Jambase
131 #rm ${BUILDPATH}/mkjambase${EXESFX}
132 docc "jambase"
134 dolink "jam" ${DESTPATH} ${BUILDPATH}/obj/jambase.o ${BUILDPATH}/obj/libjam.a
136 #rm ${BUILDPATH}/obj/* 2>/dev/null
138 echo "K8Jam built"