fixed small bug in pkg-config
[k8jam.git] / 0build_common.sh
blob5f42b63c8f55b3b58b7f7290b34911e3f40c2dd9
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 dstrings
64 execcmd
65 filent
66 fileunix
67 gdcdeps
68 genman
69 pathsys
70 expand
71 hash
72 headers
73 hcache
74 jbunpack
75 lists
76 make
77 make1
78 matchglob
79 newstr
80 option
81 parse
82 progress
83 re9
84 rexp
85 rules
86 scan
87 search
88 timestamp
89 variable
90 hdrmacro
91 libhaunp"
93 echo "building K8Jam..."
95 mkdir -p ${BUILDPATH} 2>/dev/null
96 rm -rf ${BUILDPATH}/* 2>/dev/null
97 mkdir -p ${BUILDPATH}/obj 2>/dev/null
99 mkdir -p ${DESTPATH} 2>/dev/null
100 rm -rf ${DESTPATH}/* 2>/dev/null
102 donativecc "unigen"
103 donativelink "unigen"
104 echo "unigen"
105 ${BUILDPATH}/unigen${EXESFX} ${BUILDPATH}/re9_unicode_mapping.c unidata/UnicodeData.txt
107 donativecc "lemon"
108 donativelink "lemon"
109 echo "Lemon jamgram"
110 tools/yyacc src/jamgram.lemon src/jamgramtab.h src/jamgram.yy
111 ${BUILDPATH}/lemon${EXESFX} -q src/jamgram.lemon
112 #rm ${BUILDPATH}/lemon${EXESFX}
113 docc "jamgram"
115 libobj="${BUILDPATH}/obj/jamgram.o"
116 for srcf in ${srclist}; do
117 docc "${srcf}"
118 libobj="${libobj} ${BUILDPATH}/obj/${srcf}.o"
119 done
121 echo "Ar libjam.a"
122 ${AR} ${BUILDPATH}/obj/libjam.a ${libobj}
123 if [ "z${RANLIB}" != "z" ]; then
124 echo "Ranlib libjam.a"
125 ${RANLIB} ${BUILDPATH}/obj/libjam.a
127 rm -f ${libobj}
129 docc "jam"
131 donativecc "mkjambase"
132 donativelink "mkjambase"
133 echo "preparing Jambase"
134 ${BUILDPATH}/mkjambase${EXESFX} src/jambase.c defaults/Jambase
135 #rm ${BUILDPATH}/mkjambase${EXESFX}
136 docc "jambase"
138 dolink "jam" ${DESTPATH} ${BUILDPATH}/obj/jambase.o ${BUILDPATH}/obj/libjam.a
139 mv ${DESTPATH}/jam ${DESTPATH}/k8jam
141 #rm ${BUILDPATH}/obj/* 2>/dev/null
143 echo "K8Jam built"