new installation mechanism
authorceriel <none@none>
Thu, 5 Sep 1991 16:35:56 +0000 (16:35 +0000)
committerceriel <none@none>
Thu, 5 Sep 1991 16:35:56 +0000 (16:35 +0000)
14 files changed:
mach/i386/ce/.distr
mach/i386/ce/proto.make [new file with mode: 0644]
mach/m68020/ce/.distr
mach/m68020/ce/notes [new file with mode: 0644]
mach/m68020/ce/proto.make [new file with mode: 0644]
util/ceg/util/.distr
util/ceg/util/install_ceg
util/ceg/util/make_asobj
util/ceg/util/make_back
util/ceg/util/make_ce
util/ceg/util/make_ceg [new file with mode: 0644]
util/ceg/util/make_own
util/ceg/util/proto.make [new file with mode: 0644]
util/ceg/util/update_ceg

index 01acdb2..de050f8 100644 (file)
@@ -1,5 +1,5 @@
 EM_table
-Makefile
+proto.make
 as.c
 as.h
 as_table
diff --git a/mach/i386/ce/proto.make b/mach/i386/ce/proto.make
new file mode 100644 (file)
index 0000000..ad8361b
--- /dev/null
@@ -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
index 5b1b1ea..f2261a8 100644 (file)
@@ -1,4 +1,4 @@
-Makefile
+proto.make
 as_table
 mach.c
 mach.h
diff --git a/mach/m68020/ce/notes b/mach/m68020/ce/notes
new file mode 100644 (file)
index 0000000..a2b0842
--- /dev/null
@@ -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.
diff --git a/mach/m68020/ce/proto.make b/mach/m68020/ce/proto.make
new file mode 100644 (file)
index 0000000..25a33a6
--- /dev/null
@@ -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
index 6db0a94..7386892 100644 (file)
@@ -3,7 +3,6 @@ install_ceg
 make_asobj
 make_back
 make_ce
-make_ceg_as
-make_ceg_obj
+make_ceg
 make_own
 update_ceg
index 7289c0b..1c74cfa 100644 (file)
@@ -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;;
+     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
index 9413d4f..8254a94 100644 (file)
@@ -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)
index c4382af..2201de0 100644 (file)
@@ -1,13 +1,19 @@
-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 .
index d88d89b..12ed60a 100644 (file)
@@ -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.. -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 ..
diff --git a/util/ceg/util/make_ceg b/util/ceg/util/make_ceg
new file mode 100644 (file)
index 0000000..adfe84a
--- /dev/null
@@ -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 ..
index 730d895..89a15f0 100644 (file)
@@ -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)
diff --git a/util/ceg/util/proto.make b/util/ceg/util/proto.make
new file mode 100644 (file)
index 0000000..1e44caf
--- /dev/null
@@ -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
index 5c153fd..4cc01e9 100755 (executable)
@@ -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