new installation mechanism
This commit is contained in:
parent
4ceac64530
commit
edaf2a01f4
|
@ -1,5 +1,5 @@
|
|||
EM_table
|
||||
Makefile
|
||||
proto.make
|
||||
as.c
|
||||
as.h
|
||||
as_table
|
||||
|
|
32
mach/i386/ce/proto.make
Normal file
32
mach/i386/ce/proto.make
Normal file
|
@ -0,0 +1,32 @@
|
|||
# $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
|
|
@ -1,4 +1,4 @@
|
|||
Makefile
|
||||
proto.make
|
||||
as_table
|
||||
mach.c
|
||||
mach.h
|
||||
|
|
8
mach/m68020/ce/notes
Normal file
8
mach/m68020/ce/notes
Normal file
|
@ -0,0 +1,8 @@
|
|||
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.
|
32
mach/m68020/ce/proto.make
Normal file
32
mach/m68020/ce/proto.make
Normal file
|
@ -0,0 +1,32 @@
|
|||
# $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
|
|
@ -3,7 +3,6 @@ install_ceg
|
|||
make_asobj
|
||||
make_back
|
||||
make_ce
|
||||
make_ceg_as
|
||||
make_ceg_obj
|
||||
make_ceg
|
||||
make_own
|
||||
update_ceg
|
||||
|
|
|
@ -1,18 +1,30 @@
|
|||
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;;
|
||||
|
||||
0) MAKE=$CEG/make_own;OBJ=obj ;;
|
||||
esac
|
||||
SRC_DIR=$2
|
||||
;;
|
||||
|
||||
|
||||
*) echo wrong number of arguments;
|
||||
1) MAKE=$CEG/make_own;OBJ=obj;SRC_DIR=$1 ;;
|
||||
|
||||
|
||||
*) 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
|
||||
|
|
|
@ -1,31 +1,41 @@
|
|||
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)
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
EM = ../../../..
|
||||
CEG = $(EM)/lib/ceg
|
||||
# $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
|
||||
BACK = $(CEG)/ce_back/$(OBJ)_back
|
||||
|
||||
AR = ar
|
||||
all: back.$(LIBSUF)
|
||||
|
||||
all: back.a
|
||||
|
||||
back.a: mach.h
|
||||
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 .
|
||||
|
|
|
@ -1,30 +1,33 @@
|
|||
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$(SRC_DIR) -I$(AS) -I$(EM)/h -I$(EM)/modules/h -I../back -I$(SRC_HOME)/mach
|
||||
|
||||
IFILES = -I. -I.. -I$(AS) -I$(EM)/h -I$(EM)/modules/h -I../back -I$(EM)/mach
|
||||
CFLAGS = $(COPTIONS) $(IFILES)
|
||||
|
||||
CFLAGS = -O $(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 ..
|
||||
|
|
54
util/ceg/util/make_ceg
Normal file
54
util/ceg/util/make_ceg
Normal file
|
@ -0,0 +1,54 @@
|
|||
# $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 ..
|
|
@ -1,28 +1,37 @@
|
|||
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)
|
||||
|
|
30
util/ceg/util/proto.make
Normal file
30
util/ceg/util/proto.make
Normal file
|
@ -0,0 +1,30 @@
|
|||
# $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
|
|
@ -1,28 +1,43 @@
|
|||
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
|
||||
|
|
Loading…
Reference in a new issue