separated Kernel, Files. Texts modules for bootstrapping and general use

Former-commit-id: e1f76da278
This commit is contained in:
Norayr Chilingarian 2014-03-21 04:00:44 +08:00
parent 5d683e6727
commit 66c583b70e
41 changed files with 3229 additions and 327 deletions

View file

@ -8,10 +8,8 @@ RELEASE = 1.0
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
#ADDITIONALFLAGS = "-Wno-implicit-function-declaration -Wno-pointer-sign -Wno-implicit-int -Wno-logical-op-parentheses"
ADDITIONALFLAGS = ""
SETPATH = CFLAGS="$(ADDITIONALFLAGS) $(INCLUDEPATH)" PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system/$(TOS)/$(CCOMP):src/lib/system/$(TOS)/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(TOS)/$(CCOMP):src/lib/ooc:src/lib/ooc/$(TOS)/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(TOS)/$(CCOMP):src/voc/$(TOS)/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
VOC = voc
VERSION = $(TOS).$(CCOMP).$(TARCH)
@ -22,18 +20,15 @@ LIBNAME = VishapOberon
LIBRARY = lib$(LIBNAME)
ifndef PRF
#PRF = "/opt"
PRF = "/Users/noch/local/voc"
PRF = "/opt"
endif
PREFIX = $(PRF)/voc-$(RELEASE)
PREFIXLN = $(PRF)/voc
CCOPT = -fPIC $(ADDITIONALFLAGS) $(INCLUDEPATH) -g
CCOPT = -fPIC $(INCLUDEPATH) -g
CC = cc $(CCOPT) -c
CL = cc $(CCOPT)
#LD = cc -shared -o $(LIBRARY).so
LD = cc -dynamiclib -o $(LIBRARY).dylib
# s is necessary to create index inside a archive
ARCHIVE = ar rcs $(LIBRARY).a
@ -83,10 +78,9 @@ stage3:
$(VOCSTATIC0) -sPS Args.Mod Console.Mod Unix.Mod
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
$(VOCSTATIC0) -sPS prf.Mod
$(VOCSTATIC0) -sPS oocOakStrings.Mod architecture.Mod version.Mod Kernel.Mod Modules.Mod
$(VOCSTATIC0) -sxPS Files.Mod
$(VOCSTATIC0) -sxPS OakFiles.Mod
$(VOCSTATIC0) -sPS Reals.Mod CmdlnTexts.Mod errors.Mod
$(VOCSTATIC0) -sPS oocOakStrings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
$(VOCSTATIC0) -sxPS Files0.Mod
$(VOCSTATIC0) -sPS Reals.Mod Texts0.Mod errors.Mod
# build the compiler
stage4:
@ -102,24 +96,32 @@ stage4:
#this is a way to create a bootstrap binary.
stage5:
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
oocOakStrings.c architecture.c prf.c version.c Kernel.c Files.c OakFiles.c Reals.c CmdlnTexts.c \
oocOakStrings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c \
extTools.c \
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
$(CL) voc.c -o voc \
$(CL) voc.c -o voc \
SYSTEM.o Args.o Console.o Modules.o Unix.o \
oocOakStrings.o architecture.o prf.o version.o Kernel.o Files.o Reals.o CmdlnTexts.o \
oocOakStrings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o \
extTools.o \
OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o
$(CL) BrowserCmd.c -o showdef \
SYSTEM.o Args.o Console.o Modules.o Unix.o oocOakStrings.o architecture.o prf.o version.o Kernel.o Files.o Reals.o CmdlnTexts.o \
SYSTEM.o Args.o Console.o Modules.o Unix.o oocOakStrings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o \
OPM.o OPS.o OPT.o OPV.o OPC.o errors.o
$(CL) OCatCmd.c -o ocat \
SYSTEM.o Args.o Console.o Modules.o Unix.o oocOakStrings.o architecture.o prf.o version.o Kernel.o Files.o Reals.o CmdlnTexts.o
SYSTEM.o Args.o Console.o Modules.o Unix.o oocOakStrings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
# build all library files
stage6:
#v4 libs
$(VOCSTATIC) -sP Kernel.Mod
$(VOCSTATIC) -sP Files.Mod
$(VOCSTATIC) -sP Texts.Mod
$(VOCSTATIC) -sP Printer.Mod
$(VOCSTATIC) -sP Strings.Mod
$(VOCSTATIC) -sP Sets.Mod
$(VOCSTATIC) -sP Sets0.Mod
#ooc libs
$(VOCSTATIC) -sP oocAscii.Mod
@ -159,7 +161,7 @@ stage6:
$(VOCSTATIC) -sP oocFilenames.Mod
$(VOCSTATIC) -sP oocwrapperlibc.Mod
$(VOCSTATIC) -sP oocC.Mod
#no X11 under macosx
#no X11 on macosx
#$(VOCSTATIC) -sP oocX11.Mod
#$(VOCSTATIC) -sP oocXutil.Mod
#$(VOCSTATIC) -sP oocXYplane.Mod
@ -220,13 +222,6 @@ stage6:
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
$(VOCSTATIC) -sP ulmTCrypt.Mod
#more v4 libs
$(VOCSTATIC) -sP Printer.Mod
$(VOCSTATIC) -sP Strings.Mod
$(VOCSTATIC) -sP Sets.Mod
$(VOCSTATIC) -sP Sets0.Mod
$(VOCSTATIC) -sP compatIn.Mod
#pow32 libs
$(VOCSTATIC) -sP powStrings.Mod
@ -256,27 +251,27 @@ stage6:
# $(VOCSTATIC0) -sPS compatIn.Mod
# $(VOCSTATIC0) -smPS vmake.Mod
# $(CC) compatIn.c
# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o CmdlnTexts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o oocOakStrings.o oocIntStr.o oocConvTypes.o oocIntConv.o prf.o version.o architecture.o
# $(CL) vmake.c -o vmake SYSTEM.o Args.o compatIn.o Texts.o Console.o Files.o Reals.o Modules.o Kernel.o Unix.o oocOakStrings.o oocIntStr.o oocConvTypes.o oocIntConv.o
stage7:
#remove non library objects
rm -f architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o
rm -f Kernel0.o Files0.o Texts0.o architecture.o prf.o version.o extTools.o OPM.o OPS.o OPT.o OPC.o OPV.o OPB.o OPP.o errors.o
#objects := $(wildcard *.o)
#$(LD) objects
$(ARCHIVE) *.o
#$(ARCHIVE) objects
$(LD) *.o
### echo "$(PREFIX)/lib" > 05vishap.conf
echo "$(PREFIX)/lib" > 05vishap.conf
clean:
# rm_objects := rm $(wildcard *.o)
# objects
rm *.o
rm *.sym
rm *.h
rm *.c
rm *.sym
rm *.o
rm *.a
rm *.dylib
@ -293,13 +288,13 @@ install:
test -d $(PREFIX)/lib/voc/obj | mkdir -p $(PREFIX)/lib/voc/obj
test -d $(PREFIX)/lib/voc/sym | mkdir -p $(PREFIX)/lib/voc/sym
cp $(LIBRARY).so $(PREFIX)/lib
cp $(LIBRARY).dylib $(PREFIX)/lib
cp $(LIBRARY).a $(PREFIX)/lib
cp *.c $(PREFIX)/lib/voc/obj/
cp *.h $(PREFIX)/lib/voc/obj/
cp *.sym $(PREFIX)/lib/voc/sym/
cp 05vishap.conf /etc/ld.so.conf.d/
#cp 05vishap.conf /etc/ld.so.conf.d/
ldconfig
ln -s $(PREFIX) $(PREFIXLN)