removed unused rule 'Strip' (if was not even defined)
[k8jam.git] / 0build_common.sh
blob004a8a0c920065f3d23d04943ee0dd41d5de9a70
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} -c -o ${BUILDPATH}/obj/$1.o ${CFLAGS} -Isrc -I${BUILDPATH} $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 yacc -h >/dev/null 2>&1
59 if test "$?" = "127"; then
60 echo "FATAL: YACC/Bison not found!"
61 exit 1
65 srclist="\
66 builtins
67 command
68 compile
69 execcmd
70 filent
71 fileunix
72 pathsys
73 expand
74 glob
75 hash
76 headers
77 hcache
78 lists
79 make
80 make1
81 newstr
82 option
83 parse
84 progress
85 hsregexp
86 rules
87 scan
88 search
89 timestamp
90 variable
91 hdrmacro
92 kstrings"
94 echo "building K8Jam..."
96 mkdir -p ${BUILDPATH} 2>/dev/null
97 rm -rf ${BUILDPATH}/* 2>/dev/null
98 mkdir -p ${BUILDPATH}/obj 2>/dev/null
100 mkdir -p ${DESTPATH} 2>/dev/null
101 rm -rf ${DESTPATH}/* 2>/dev/null
103 echo "Yacc jamgram"
104 tools/yyacc ${BUILDPATH}/jamgram.y ${BUILDPATH}/jamgramtab.h src/jamgram.yy
105 yacc -d ${BUILDPATH}/jamgram.y
106 mv -f y.tab.c ${BUILDPATH}/jamgram.c
107 mv -f y.tab.h ${BUILDPATH}/jamgram.h
108 docc "jamgram" ${BUILDPATH}
110 donativecc "unigen"
111 donativelink "unigen"
112 echo "unigen"
113 ${BUILDPATH}/unigen${EXESFX} ${BUILDPATH}/hsregexp_unicode_mapping.c unidata/UnicodeData.txt
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}
124 echo "Ranlib libjam.a"
125 ${RANLIB} ${BUILDPATH}/obj/libjam.a
126 rm -f ${libobj}
128 docc "jam"
130 donativecc "mkjambase"
131 donativelink "mkjambase"
132 echo "preparing Jambase"
133 ${BUILDPATH}/mkjambase${EXESFX} ${BUILDPATH}/jambase.c defaults/Jambase
134 docc "jambase" ${BUILDPATH}
136 dolink "jam" ${DESTPATH} ${BUILDPATH}/obj/jambase.o ${BUILDPATH}/obj/libjam.a
138 #rm ${BUILDPATH}/obj/* 2>/dev/null
140 echo "K8Jam built"