1*7ef44d65SYaroslav Kolomiiets#!/bin/sh 2*7ef44d65SYaroslav Kolomiiets 3*7ef44d65SYaroslav Kolomiiets# this file is used only to bootstrap mk onto a platform 4*7ef44d65SYaroslav Kolomiiets# that currently lacks a binary for mk. after that, mk can 5*7ef44d65SYaroslav Kolomiiets# look after itself. 6*7ef44d65SYaroslav Kolomiiets 7*7ef44d65SYaroslav Kolomiiets# support@vitanuova.com 8*7ef44d65SYaroslav Kolomiiets 9*7ef44d65SYaroslav Kolomiiets# change these defines as appropriate here or in mkconfig 10*7ef44d65SYaroslav Kolomiiets# ROOT should be the root of the Inferno tree 11*7ef44d65SYaroslav KolomiietsROOT=/usr/inferno 12*7ef44d65SYaroslav KolomiietsSYSTARG=AIX 13*7ef44d65SYaroslav KolomiietsOBJTYPE=power 14*7ef44d65SYaroslav KolomiietsSYSTYPE=posix 15*7ef44d65SYaroslav Kolomiiets 16*7ef44d65SYaroslav Kolomiiets# if you have already changed mkconfig from the distribution, we'll use the definitions from that 17*7ef44d65SYaroslav Kolomiietsgrep -s 'SYSTARG=Plan9' mkconfig || . ./mkconfig 18*7ef44d65SYaroslav Kolomiiets 19*7ef44d65SYaroslav KolomiietsPLAT=$ROOT/$SYSTARG/$OBJTYPE 20*7ef44d65SYaroslav Kolomiiets 21*7ef44d65SYaroslav Kolomiiets# you might need to adjust the CC, LD, AR, and RANLIB definitions after this point 22*7ef44d65SYaroslav KolomiietsCC="p xlc -g -O -qsuppress=1506-224 -c -I$PLAT/include -I$ROOT/include -I$ROOT/utils/include" 23*7ef44d65SYaroslav KolomiietsLD="p xlc" 24*7ef44d65SYaroslav KolomiietsAR="p ar crvs" 25*7ef44d65SYaroslav KolomiietsRANLIB=":" # some systems still require `ranlib' 26*7ef44d65SYaroslav Kolomiiets 27*7ef44d65SYaroslav Kolomiietserror() { 28*7ef44d65SYaroslav Kolomiiets echo $* >&2 29*7ef44d65SYaroslav Kolomiiets exit 1 30*7ef44d65SYaroslav Kolomiiets} 31*7ef44d65SYaroslav Kolomiiets 32*7ef44d65SYaroslav Kolomiietsofiles() { 33*7ef44d65SYaroslav Kolomiiets echo $* | sed 's/\.c/.o/g' 34*7ef44d65SYaroslav Kolomiiets} 35*7ef44d65SYaroslav Kolomiiets 36*7ef44d65SYaroslav Kolomiietsp() { 37*7ef44d65SYaroslav Kolomiiets echo $* 38*7ef44d65SYaroslav Kolomiiets "$@" 39*7ef44d65SYaroslav Kolomiiets} 40*7ef44d65SYaroslav Kolomiiets 41*7ef44d65SYaroslav Kolomiiets# make sure we start off clean 42*7ef44d65SYaroslav Kolomiietsecho removing old libraries and binaries 43*7ef44d65SYaroslav Kolomiietsrm -f $PLAT/lib/*.a $PLAT/bin/* 44*7ef44d65SYaroslav Kolomiietsrm -f utils/cc/y.tab.? 45*7ef44d65SYaroslav Kolomiiets 46*7ef44d65SYaroslav Kolomiiets# ensure the output directories exist 47*7ef44d65SYaroslav Kolomiietsmkdir -p $PLAT/lib $PLAT/bin 48*7ef44d65SYaroslav Kolomiiets 49*7ef44d65SYaroslav Kolomiiets# libregexp 50*7ef44d65SYaroslav Kolomiietscd $ROOT/utils/libregexp || error cannot find libregexp directory 51*7ef44d65SYaroslav KolomiietsCFILES="regaux.c regcomp.c regerror.c regexec.c regsub.c rregexec.c rregsub.c" 52*7ef44d65SYaroslav Kolomiiets$CC $CFILES || error libregexp compilation failed 53*7ef44d65SYaroslav Kolomiiets$AR $PLAT/lib/libregexp.a `ofiles $CFILES` || error libregexp ar failed 54*7ef44d65SYaroslav Kolomiiets$RANLIB $PLAT/lib/libregexp.a || error libregexp ranlib failed 55*7ef44d65SYaroslav Kolomiiets 56*7ef44d65SYaroslav Kolomiiets# libbio 57*7ef44d65SYaroslav Kolomiietscd $ROOT/libbio || error cannot find libbio directory 58*7ef44d65SYaroslav Kolomiiets$CC *.c || error libbio compilation failed 59*7ef44d65SYaroslav Kolomiiets$AR $PLAT/lib/libbio.a *.o || error libbio ar failed 60*7ef44d65SYaroslav Kolomiiets$RANLIB $PLAT/lib/libbio.a || error libbio ranlib failed 61*7ef44d65SYaroslav Kolomiiets 62*7ef44d65SYaroslav Kolomiiets# lib9 63*7ef44d65SYaroslav Kolomiietscd $ROOT/lib9 || error cannot find lib9 directory 64*7ef44d65SYaroslav KolomiietsCFILES="dirstat-$SYSTYPE.c rerrstr.c errstr-$SYSTYPE.c getuser-$SYSTYPE.c" # system specific 65*7ef44d65SYaroslav KolomiietsCFILES="$CFILES charstod.c cleanname.c create.c dirwstat.c *print*.c *fmt*.c exits.c getfields.c pow10.c print.c qsort.c rune.c runestrlen.c seek.c strdup.c strtoll.c utflen.c utfrrune.c utfrune.c utf*.c *str*cpy*.c" 66*7ef44d65SYaroslav Kolomiiets$CC $CFILES || error lib9 compilation failed 67*7ef44d65SYaroslav Kolomiiets$AR $PLAT/lib/lib9.a `ofiles $CFILES` || error lib9 ar failed 68*7ef44d65SYaroslav Kolomiiets$RANLIB $PLAT/lib/lib9.a || error lib9 ranlib failed 69*7ef44d65SYaroslav Kolomiiets 70*7ef44d65SYaroslav Kolomiiets# mk itself 71*7ef44d65SYaroslav Kolomiietscd $ROOT/utils/mk 72*7ef44d65SYaroslav KolomiietsCFILES="Posix.c sh.c" # system specific 73*7ef44d65SYaroslav KolomiietsCFILES="$CFILES arc.c archive-AIX.c bufblock.c env.c file.c graph.c job.c lex.c main.c match.c mk.c parse.c recipe.c rule.c run.c shprint.c symtab.c var.c varsub.c word.c" 74*7ef44d65SYaroslav Kolomiiets$CC $CFILES || error mk compilation failed 75*7ef44d65SYaroslav Kolomiiets$LD -o mk `ofiles $CFILES` $PLAT/lib/libregexp.a $PLAT/lib/libbio.a $PLAT/lib/lib9.a || error mk link failed 76*7ef44d65SYaroslav Kolomiietscp mk $PLAT/bin || error mk binary install failed 77*7ef44d65SYaroslav Kolomiiets 78*7ef44d65SYaroslav Kolomiietsecho mk binary built successfully! 79