added 'set-target-locations' alias
[k8jam.git] / 0build_common.sh
blob1eb5d1e47b1b623f8e55da5a5cb0c26ed249fcd6
1 #!/bin/sh
4 # $1: file w/o extension
5 # $2: src path (optional)
6 function 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 function dolink {
20 fname="$1"
21 ptmp="$2"
22 shift
23 shift
24 echo "Link $1"
25 if [ "z$ptmp" = "z" ]; then
26 ptmp="${BUILDPATH}"
28 ${LINK} ${LINKFLAGS} -o $ptmp/${fname}${EXESFX} ${BUILDPATH}/obj/${fname}.o $* ${LINKLIBS}
29 if [ "z$WINE" != "z" ]; then
30 chmod 711 $ptmp/${fname}${EXESFX}
35 srclist="\
36 builtins
37 command
38 compile
39 execcmd
40 filent
41 fileunix
42 pathsys
43 expand
44 glob
45 hash
46 headers
47 hcache
48 lists
49 make
50 make1
51 newstr
52 option
53 parse
54 progress
55 hsregexp
56 rules
57 scan
58 search
59 timestamp
60 variable
61 hdrmacro
62 kstrings"
64 echo "building K8Jam..."
66 mkdir -p ${BUILDPATH} 2>/dev/null
67 rm -rf ${BUILDPATH}/* 2>/dev/null
68 mkdir -p ${BUILDPATH}/obj 2>/dev/null
70 mkdir -p ${DESTPATH} 2>/dev/null
71 rm -rf ${DESTPATH}/* 2>/dev/null
73 echo "Yacc jamgram"
74 tools/yyacc ${BUILDPATH}/jamgram.y ${BUILDPATH}/jamgramtab.h src/jamgram.yy
75 yacc -d ${BUILDPATH}/jamgram.y
76 mv -f y.tab.c ${BUILDPATH}/jamgram.c
77 mv -f y.tab.h ${BUILDPATH}/jamgram.h
78 docc "jamgram" ${BUILDPATH}
80 libobj="${BUILDPATH}/obj/jamgram.o"
81 for srcf in ${srclist}; do
82 docc "${srcf}"
83 libobj="${libobj} ${BUILDPATH}/obj/${srcf}.o"
84 done
86 echo "Ar libjam.a"
87 ${AR} ${BUILDPATH}/obj/libjam.a ${libobj}
89 echo "Ranlib libjam.a"
90 ${RANLIB} ${BUILDPATH}/obj/libjam.a
91 rm -f ${libobj}
93 docc "mkjambase"
94 dolink "mkjambase"
96 docc "jam"
98 echo "preparing Jambase"
99 ${WINE} ${BUILDPATH}/mkjambase${EXESFX} ${BUILDPATH}/jambase.c defaults/Jambase
100 docc "jambase" ${BUILDPATH}
102 dolink "jam" ${DESTPATH} ${BUILDPATH}/obj/jambase.o ${BUILDPATH}/obj/libjam.a
104 #rm ${BUILDPATH}/obj/* 2>/dev/null
106 echo "K8Jam built"