EM_table
-Makefile
+proto.make
as.c
as.h
as_table
--- /dev/null
+# $Header$
+
+#PARAMS do not remove this line!
+
+SRC_DIR = $(SRC_HOME)/mach/i386/ce
+
+CEG = $(TARGET_HOME)/lib.bin/ceg/util
+OBJ = obj
+MACH = i386
+
+all:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH)
+
+install:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH) install
+
+cmp:
+ -make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH) cmp
+
+pr:
+ @pr $(SRC_DIR)/proto.make $(SRC_DIR)/EM_table $(SRC_DIR)/mach.h $(SRC_DIR)/mach.c $(SRC_DIR)/as_table $(SRC_DIR)/as.h $(SRC_DIR)/as.c
+
+opr:
+ make pr | opr
+
+# total cleanup
+clean:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) clean
+
+# only remove ce, ceg, and back directories
+dclean:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) dclean
-Makefile
+proto.make
as_table
mach.c
mach.h
--- /dev/null
+Helaas het framework kan niet tegen mnemonics met '.' erin, bijv.
+ add.l
+ move.w
+
+Oplossing:
+
+Alle punten door underscores vervangen in 'as_table' en process_menemonic()
+aangepast zodat ook de punten uit de 'EM_table' omgewzet worden in underscores.
--- /dev/null
+# $Header$
+
+#PARAMS do not remove this line!
+
+MACH = m68020
+OBJ = obj
+SRC_DIR = $(SRC_HOME)/mach/$(MACH)/ce
+
+CEG = $(TARGET_HOME)/lib.bin/ceg/util
+
+all:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH)
+
+install:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH) install
+
+cmp:
+ -make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH) cmp
+
+pr:
+ @pr $(SRC_DIR)/proto.make $(SRC_DIR)/EM_table $(SRC_DIR)/mach.h $(SRC_DIR)/mach.c $(SRC_DIR)/as_table $(SRC_DIR)/as.h $(SRC_DIR)/as.c
+
+opr:
+ make pr | opr
+
+# total cleanup
+clean:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) clean
+
+# only remove ce, ceg, and back directories
+dclean:
+ make -f $(CEG)/make_asobj "OBJ="$(OBJ) dclean
make_asobj
make_back
make_ce
-make_ceg_as
-make_ceg_obj
+make_ceg
make_own
update_ceg
-EMHOME=../../..
-CEG=../../../lib/ceg/util
+CEG=$TARGET_HOME/lib.bin/ceg/util
case $# in
- 1) case $1 in
+ 2) case $1 in
-as) MAKE=$CEG/make_asobj;OBJ=as;;
-obj) MAKE=$CEG/make_asobj;OBJ=obj;;
*) echo wrong option $1, use -as or -obj;
exit 1;;
- esac;;
+ esac
+ SRC_DIR=$2
+ ;;
- 0) MAKE=$CEG/make_own;OBJ=obj ;;
+ 1) MAKE=$CEG/make_own;OBJ=obj;SRC_DIR=$1 ;;
- *) echo wrong number of arguments;
+
+ *) echo Usage: $0 [-as|-obj] <source directory>
exit 1;;
esac
-make -f $MAKE OBJ=$OBJ install
+
+case X$MACH in
+X) MACH=`expr $SRC_DIR : '.*/mach/\(.*\)/ce*`
+ ;;
+esac
+case X$MACH in
+ echo environment definition for MACH required
+ exit 1
+ ;;
+esac
+make -f $MAKE OBJ=$OBJ MACH=$MACH SRC_DIR=$SRC_DIR install
-EM = ../../..
-CEG = $(EM)/lib/ceg
+# $Header$
+
+#PARAMS do not remove this line!
+
+#requires definition of MACH; possible redefinition of SRC_DIR
+
+EM = $(TARGET_HOME)
+CEG = $(EM)/lib.bin/ceg
CE_MAKE = $(CEG)/util/make_ce
BACK_MAKE = $(CEG)/util/make_back
-CEG_MAKE = $(CEG)/util/make_ceg_$(OBJ)
+CEG_MAKE = $(CEG)/util/make_ceg
+
+SRC_DIR = $(SRC_HOME)/mach/$(MACH)/ce
-all: back.a ceg/ceg ce.a
+all: back.$(LIBSUF) ceg/ceg ce.$(LIBSUF)
install: all
- ../../install ce.a
- ../../install back.a
+ cp ce.$(LIBSUF) $(EM)/lib.bin/$(MACH)/ce.$(LIBSUF)
+ $(RANLIB) $(EM)/lib.bin/$(MACH)/ce.$(LIBSUF)
+ cp back.$(LIBSUF) $(EM)/lib.bin/$(MACH)/back.$(LIBSUF)
+ $(RANLIB) $(EM)/lib.bin/$(MACH)/back.$(LIBSUF)
cmp: all
- -../../compare ce.a
- -../../compare back.a
+ -cmp ce.$(LIBSUF) $(EM)/lib.bin/$(MACH)/ce.$(LIBSUF)
+ -cmp back.$(LIBSUF) $(EM)/lib.bin/$(MACH)/back.$(LIBSUF)
clean:
- rm -rf ce back ceg ce.a back.a Out
+ rm -rf ce back ceg ce.$(LIBSUF) back.$(LIBSUF) Out
dclean:
rm -rf ce back ceg Out
-ce.a:
- make -f $(CE_MAKE)
+ce.$(LIBSUF):
+ make -f $(CE_MAKE) "SRC_DIR="$(SRC_DIR)
-back.a:
- make -f $(BACK_MAKE) "OBJ="$(OBJ)
+back.$(LIBSUF):
+ make -f $(BACK_MAKE) "OBJ="$(OBJ) "SRC_DIR="$(SRC_DIR)
ceg/ceg:
- make -f $(CEG_MAKE)
+ make -f $(CEG_MAKE) "OBJ="$(OBJ) "SRC_DIR="$(SRC_DIR)
-EM = ../../../..
-CEG = $(EM)/lib/ceg
-BACK = $(CEG)/ce_back/$(OBJ)_back
+# $Header$
+
+#PARAMS do not remove this line!
-AR = ar
+# requires definitions for OBJ and SRC_DIR; not to be called directly
-all: back.a
+CEG = $(TARGET_HOME)/lib.bin/ceg
+BACK = $(CEG)/ce_back/$(OBJ)_back
-back.a: mach.h
+all: back.$(LIBSUF)
+
+back.$(LIBSUF): mach.h
-mkdir back
cd back;cp $(BACK)/*h . ; cp $(BACK)/Makefile . ; make ; cd ..
- $(AR) r back.a back/*o
- -sh -c 'ranlib back.a'
+ $(AR) r back.$(LIBSUF) back/*.$(SUF)
+ $(RANLIB) back.$(LIBSUF)
+
+mach.h: $(SRC_DIR)/mach.h
+ cp $(SRC_DIR)/mach.h .
-EM = ../../../..
-CEG = $(EM)/lib/ceg
+# $Header$
+
+#PARAMS do not remove this line!
+
+#requires a definition for SRC_DIR; not to be called directly.
+
+EM = $(TARGET_HOME)
+CEG = $(EM)/lib.bin/ceg
AS = $(CEG)/as_parser
DEF = $(CEG)/defaults
-AR = ar
-CC = cc
-
-IFILES = -I. -I.. -I$(AS) -I$(EM)/h -I$(EM)/modules/h -I../back -I$(EM)/mach
+IFILES = -I. -I$(SRC_DIR) -I$(AS) -I$(EM)/h -I$(EM)/modules/h -I../back -I$(SRC_HOME)/mach
-CFLAGS = -O $(IFILES)
+CFLAGS = $(COPTIONS) $(IFILES)
-.c.o:
+.c.$(SUF):
cd ce ; $(CC) -c $(CFLAGS) ../$*.c ; cd ..
-all: ce.a
+all: ce.$(LIBSUF)
-ce.a: ce/dummy
- $(AR) r ce.a ce/*.o
- -sh -c 'ranlib ce.a'
+ce.$(LIBSUF): ce/dummy
+ $(AR) r ce.$(LIBSUF) ce/*.$(SUF)
+ $(RANLIB) ce.$(LIBSUF)
-ce/dummy: ce/dummy1 mach.h back.a
+ce/dummy: ce/dummy1 back.$(LIBSUF)
cd ce ; $(CC) -c $(CFLAGS) *.c ; touch dummy ; cd ..
-ce/dummy1: ceg/ceg EM_table
+ce/dummy1: ceg/ceg $(SRC_DIR)/EM_table $(SRC_DIR)/mach.c
-mkdir ce
- -ln mach.c ce/mach.c
+ -cp $(SRC_DIR)/mach.c ce/mach.c
cd ce ; ../ceg/ceg -l < $(DEF)/not_impl/not_impl_table ; cp $(DEF)/*.c . ; cp $(DEF)/*/*.c . ; cd ..
- cd ce ; $(EM)/lib/cpp -P ../EM_table | ../ceg/ceg -l ; touch dummy1 ; cd ..
+ cd ce ; $(EM)/lib.bin/cpp -P $(SRC_DIR)/EM_table | ../ceg/ceg -l ; touch dummy1 ; cd ..
--- /dev/null
+# $Header$
+
+#PARAMS do not remove this line!
+
+#requires definitions for OBJ and SRC_DIR; not to be called directly
+
+CEG = $(TARGET_HOME)/lib.bin/ceg
+
+Em = $(CEG)/EM_parser/$(OBJ)_EM_pars
+ASMAIN = $(CEG)/assemble/$(OBJ)_assemble
+AS = $(CEG)/as_parser
+EVAL = $(CEG)/as_parser/eval
+DEF = $(CEG)/defaults
+
+IFILES = -I. -I$(SRC_DIR) -I$(AS) -I$(Em) -I$(TARGET_HOME)/h -I$(TARGET_HOME)/modules/h -I../back
+
+CFLAGS = $(COPTIONS) $(IFILES)
+LDFLAGS = $(LDOPTIONS)
+
+CEG_LIBS = $(TARGET_HOME)/modules/lib/liballoc.$(LIBSUF)\
+ $(TARGET_HOME)/modules/lib/libprint.$(LIBSUF)\
+ $(TARGET_HOME)/modules/lib/libstring.$(LIBSUF)\
+ $(TARGET_HOME)/modules/lib/libsystem.$(LIBSUF)
+
+all: ceg/ceg
+
+obj_list: ceg/as_lib.$(LIBSUF) ceg/as_instr.$(SUF) ceg/eval_as.$(SUF)
+ echo 'ceg/as_lib.$(LIBSUF) ceg/as_instr.$(SUF) ceg/eval_as.$(SUF)' > list
+
+as_list: ceg/as_lib.$(LIBSUF)
+ echo 'ceg/as_lib.$(LIBSUF)' > list
+
+list: $(OBJ)_list
+
+ceg/ceg: list
+ $(CC) $(LDFLAGS) -o ceg/ceg $(Em)/*.$(SUF) `cat list` $(CEG_LIBS)
+
+ceg/as_lib.$(LIBSUF):
+ -mkdir ceg
+ cd ceg ; cp $(CEG)/util/make_ceg_$(OBJ) Makefile ; cd ..
+ cd ceg ; cp $(ASMAIN)/* . ; $(CC) -c $(CFLAGS) *.c; $(AR) r as_lib.$(LIBSUF) *.$(SUF) ; cd ..
+ $(RANLIB) ceg/as_lib.$(LIBSUF)
+
+ceg/eval_as.$(SUF) : ceg/eval_as.c $(SRC_DIR)/as.h # $(AS)/as_parser.h $(Em)/arg_type.h
+ cd ceg ; $(CC) -c $(CFLAGS) eval_as.c ; cd ..
+
+ceg/eval_as.c : $(SRC_DIR)/as.c # $(EVAL)/eval
+ cd ceg ; $(EVAL)/eval < $(SRC_DIR)/as.c > eval_as.c ; cd ..
+
+ceg/as_instr.$(SUF) : $(SRC_DIR)/as.h ceg/as_lib.$(LIBSUF) ceg/as_instr.c
+ cd ceg ; $(CC) -c $(CFLAGS) as_instr.c ; cd ..
+
+ceg/as_instr.c : $(SRC_DIR)/as_table # $(AS)/as_parser
+ cd ceg ; $(TARGET_HOME)/lib.bin/cpp -P $(SRC_DIR)/as_table | $(AS)/as_parser > as_instr.c ; cd ..
-EM = ../../..
-CEG = $(EM)/lib/ceg
+# $Header$
+
+#PARAMS do not remove this line!
+
+#requires definition of MACH; possible redefinition of SRC_DIR
+
+EM = $(TARGET_HOME)
+CEG = $(EM)/lib.bin/ceg
CE_MAKE = $(CEG)/util/make_ce
BACK_MAKE = $(CEG)/util/make_back
-CEG_MAKE = $(CEG)/util/make_ceg_obj
+CEG_MAKE = $(CEG)/util/make_ceg
+SRC_DIR = $(SRC_HOME)/mach/$(MACH)/ce
-all: ceg/ceg ce.a
+all: ceg/ceg ce.$(LIBSUF)
install: all
- ../../install ce.a
- ../../install back.a
+ cp ce.$(LIBSUF) $(EM)/lib.bin/$(MACH)/ce.$(LIBSUF)
+ $(RANLIB) $(EM)/lib.bin/$(MACH)/ce.$(LIBSUF)
+ cp back.$(LIBSUF) $(EM)/lib.bin/$(MACH)/back.$(LIBSUF)
+ $(RANLIB) $(EM)/lib.bin/$(MACH)/back.$(LIBSUF)
cmp: all
- -../../compare ce.a
- -../../compare back.a
+ -cmp ce.$(LIBSUF) $(EM)/lib.bin/$(MACH)/ce.$(LIBSUF)
+ -cmp back.$(LIBSUF) $(EM)/lib.bin/$(MACH)/back.$(LIBSUF)
clean:
- rm -rf ce ceg ce.a Out
+ rm -rf ce ceg ce.$(LIBSUF) Out
dclean:
rm -rf ce ceg Out
-ce.a:
- make -f $(CE_MAKE)
+ce.$(LIBSUF):
+ make -f $(CE_MAKE) "SRC_DIR="$(SRC_DIR)
ceg/ceg:
- make -f $(CEG_MAKE)
+ make -f $(CEG_MAKE) "OBJ="obj "SRC_DIR="$(SRC_DIR)
--- /dev/null
+# $Header$
+
+#PARAMS do not remove this line!
+
+SRC_DIR = $(SRC_HOME)/util/ceg/util
+CEGLIB = $(TARGET_HOME)/lib.bin/ceg
+UTIL = $(CEGLIB)/util
+UtilList = make_asobj make_own make_back make_ce make_ceg
+
+all:
+
+install:
+ -mkdir $(CEGLIB)
+ -mkdir $(UTIL)
+ for i in $(UtilList) ; do cp $$i $(UTIL)/$$i ; done
+ { echo TARGET_HOME=$(TARGET_HOME); cat $(SRC_DIR)/install_ceg } > $(TARGET_HOME)/bin/install_ceg
+ chmod +x $(TARGET_HOME)/bin/install_ceg
+ { echo TARGET_HOME=$(TARGET_HOME); echo SUF=$(SUF); echo LIBSUF=$(LIBSUF); cat $(SRC_DIR)/update_ceg } > $(TARGET_HOME)/bin/update_ceg
+ chmod +x $(TARGET_HOME)/bin/update_ceg
+
+cmp:
+ -for i in $(UtilList) ; do cmp $$i $(UTIL)/$$i ; done
+
+clean:
+
+pr:
+ @for i in $(UtilList) ; do pr $(SRC_DIR)/$$i ; done
+
+opr:
+ make pr | opr
-MAKE=../../../lib/ceg/util/make_ce
+CEG=$TARGET_HOME/lib.bin/ceg
+MAKE=$CEG/util/make_ce
-make -f ceg/Makefile
+case $# in
+ 2) case $1 in
+ -as) OBJ=as;;
+ -obj) OBJ=obj;;
+ *) echo wrong option $1, use -as or -obj;
+ exit 1;;
+ esac
+ SRC_DIR=$2
+ ;;
+ 1) SRC_DIR=$1;OBJ=obj ;;
+ *) echo Usage: $0 [-as|-obj] <source directory>
+ ;;
+esac
+
+make -f ceg/Makefile SRC_DIR=$SRC_DIR OBJ=$OBJ
for i
do
case $i in
- ALL) make -f $MAKE ce.a
+ ALL) make -f $MAKE SRC_DIR=$SRC_DIR ce.$LIBSUF
exit 0
;;
- *.o) make -f $MAKE ce/$i
+ *.$SUF) make -f $MAKE SRC_DIR=$SRC_DIR ce/$i
;;
- *..) ( cd ce; ../../../../lib/cpp -P ../EM_table | ../ceg/ceg -c $i)
+ *..) ( cd ce; $TARGET_HOME/lib.bin/cpp -P $SRC_DIR/EM_table | ../ceg/ceg -c $i)
F=`basename $i ..`
U="_dnam"
V="_dlb"
- make -f $MAKE ce/$F.o ce/$F$U.o ce/"$F$V.o"
+ make -f $MAKE SRC_DIR=$SRC_DIR ce/$F.$SUF ce/$F$U.$SUF ce/$F$V.$SUF
;;
- *) ( cd ce; ../../../../lib/cpp -P ../EM_table | ../ceg/ceg -c $i)
- make -f $MAKE ce/$i.o
+ *) ( cd ce; $TARGET_HOME/lib.bin/cpp -P $SRC_DIR/EM_table | ../ceg/ceg -c $i)
+ make -f $MAKE SRC_DIR=$SRC_DIR ce/$i.$SUF
;;
esac
done
touch ce/dummy
-make -f $MAKE ce.a
+make -f $MAKE SRC_DIR=$SRC_DIR ce.$LIBSUF