mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-05 23:22:25 +00:00
Begin update to V2. Move old files to triage.
This commit is contained in:
parent
593774a3fc
commit
ead30cb27b
20 changed files with 0 additions and 0 deletions
1
triage/05vishap.conf
Normal file
1
triage/05vishap.conf
Normal file
|
|
@ -0,0 +1 @@
|
|||
/opt/voc-1.1/lib
|
||||
1342
triage/CHANGES.md
Normal file
1342
triage/CHANGES.md
Normal file
File diff suppressed because it is too large
Load diff
37
triage/CHANGES0.md
Normal file
37
triage/CHANGES0.md
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
Before initial commit
|
||||
=====================
|
||||
|
||||
* fixed bug in OPC.Genheader function. If new option is added in OPM, but not added in OPC, compiler was crashing. Simple ELSE fixed the problem.
|
||||
|
||||
* par file is not necessary by default (there is a command line argument for that, and defaultTarget is set in OPM.Mod, version.Mod and architecture.Mod)
|
||||
|
||||
* external compiler is called by default. added options to just generate the output, and not call external compiler or assembler.
|
||||
|
||||
* OBERON variable always contains current directory path by default (changes in Kernel.Mod, added oocStrings dependency to it), as well as installed default libraries sym files path.
|
||||
|
||||
* MODULES variable added in order to specify directories where to look for source file. OBERON variable is not used by developer anymore, only MODULES variable.
|
||||
|
||||
* error messages are now more descriptive (errors.Mod added)
|
||||
|
||||
* help is now more descriptive
|
||||
|
||||
* version module which defines the target and version string.
|
||||
|
||||
* recoursive build (not yet implemented)
|
||||
|
||||
* change max and min longint, change maxset - calculated, and not hardcoded
|
||||
|
||||
* real 64bit LONGINT on x86_64
|
||||
|
||||
* changed makefile
|
||||
|
||||
* ported some ooc and ooc2 libraries
|
||||
|
||||
* ported some Ulm Oberon libraries
|
||||
|
||||
* works with unicode strings
|
||||
|
||||
* voc checks for CFLAGS variable, and adds it to it's command line. this is used during bootstrapping, see makefile.
|
||||
|
||||
* many other changes
|
||||
|
||||
71
triage/COMPILE
Normal file
71
triage/COMPILE
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
Platforms
|
||||
=======:
|
||||
several bootstrap static binaries provided, for
|
||||
|
||||
gnu/linux on x86_64
|
||||
gnu/linux on x86
|
||||
gnu/linux on armv6j_hardfp (i. e. raspberry pi)
|
||||
darwin on x86_64 (read osx)
|
||||
freebsd on x86_64
|
||||
openbsd on x86_64
|
||||
|
||||
Prerequisites:
|
||||
==========
|
||||
on Debian GNU/Linux:
|
||||
|
||||
gcc, libc6-dev on debian
|
||||
|
||||
on RHEL/CentOS/Fedora:
|
||||
|
||||
gcc, glibc-devel, glibc-static
|
||||
|
||||
on OSX:
|
||||
clang, Xcode.
|
||||
|
||||
How to install
|
||||
==============
|
||||
|
||||
By default, voc will be installed to /opt/voc-<version> and /opt/voc symlink to it will be created.
|
||||
If you want it in other prefix, then edit makefile for your platform, and change PRF = "/opt" to the path you need.
|
||||
|
||||
Then just cd into source directory and type
|
||||
|
||||
>make -f makefile.linux.gcc.x86_64
|
||||
|
||||
if you are on GNU/Linux x86_64 platform and you want voc to use gcc as backend.
|
||||
|
||||
otherwise use corresponding makefile.
|
||||
|
||||
Note for FreeBSD, OpenBSD and OSX users:
|
||||
use gmake instead of make, i. e.
|
||||
|
||||
>gmake -f makefile.darwin.clang.x86_64
|
||||
|
||||
then type
|
||||
|
||||
>sudo make install
|
||||
|
||||
or
|
||||
>sudo gmake -f makefile.darwin.clang.x86_64 install
|
||||
|
||||
on MacOSX/Darwin.
|
||||
|
||||
build rpm
|
||||
=========
|
||||
|
||||
if you'd like to build an rpm installer, then
|
||||
|
||||
* compress sources as voc-1.0.src.tar.bz2
|
||||
assuming you in voc directory
|
||||
> cd ..
|
||||
> tar -jcvpf voc-1.0.src.tar.bz2 voc
|
||||
* put them to ~/rpmbuild/SOURCES (on some systems as root to /usr/src/redhat/SOURCES/) or other similar location.
|
||||
> mkdir -p ~/rpmbuild/SOURCES
|
||||
> cp voc-1.0.src.tar.bz2 ~/rpmbuild/SOURCES
|
||||
* cd to voc directory and run
|
||||
> rpmbuild -ba voc.spec
|
||||
|
||||
this should create voc rpm installers.
|
||||
|
||||
|
||||
-- noch
|
||||
34
triage/FAQ.md
Normal file
34
triage/FAQ.md
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
|
||||
compiler does show only character position, not the line number
|
||||
===============================================================
|
||||
|
||||
Yes, by default it shows you the character position, because it's faster to go to character position in vim
|
||||
:goto number
|
||||
|
||||
In case you still want to use line numbers then pass -l option to voc
|
||||
|
||||
voc -ls m.Mod
|
||||
|
||||
compilation crashes on Ubuntu 15.10 x86_64 or latest Raspbians on Raspberry Pi with recent (like 3.12) kernels.
|
||||
===========================================================================
|
||||
|
||||
> echo 1 > /proc/sys/vm/legacy_va_layout
|
||||
|
||||
should fix that.
|
||||
|
||||
compilation crashes with "cannot find -lc" on recent fedoras
|
||||
============================================================
|
||||
|
||||
remove <code>-static</code> from makefile on the line where voc binary created (first -static you'll find)
|
||||
|
||||
make errors on freebsd
|
||||
======================
|
||||
|
||||
># make -f makefile.freebsd.clang.x86_64
|
||||
make: "/root/voc/makefile.freebsd.clang.x86_64" line 22: Need an operator
|
||||
make: "/root/voc/makefile.freebsd.clang.x86_64" line 24: Need an operator
|
||||
make: Fatal errors encountered -- cannot continue
|
||||
make: stopped in /root/voc
|
||||
|
||||
use gmake.
|
||||
128
triage/README.md
Normal file
128
triage/README.md
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
|
||||
Vishap oberon compiler
|
||||
======================
|
||||
|
||||
[ⱱishap Oberon Compiler](http://oberon.vishap.am) (voc) is a free (GPLv3) professional oberon-2 compiler.
|
||||
|
||||
Platforms:
|
||||
=========
|
||||
voc produces x86_64, x86, ppc, armv{4-7} binaries and works on those platforms.
|
||||
On x86_64 it supports 64bit LONGINT and 64bit SET types.
|
||||
By using currently stable C backend voc is relatively easy to port to any platform for which C compiler exists.
|
||||
|
||||
Operating Systems:
|
||||
==================
|
||||
Currently GNU/Linux, Mac OS X, FreeBSD and OpenBSD sources (with bootstrap binaries) are published.
|
||||
|
||||
Ports to Solaris, AIX will be made and published in case there is an interest from community.
|
||||
voc should work on MS Windows/ReactOS via Cygwin/gcc, however we did not test it on Windows compatible machine.
|
||||
|
||||
Backends:
|
||||
=========
|
||||
voc has stable C backend, which generates human readable and easily debuggable C code.
|
||||
Generated C code is fairly efficient and does not cause a noticeable overhead. voc was used to generate code even for low end 8 bit devices like nmos6502 and AVR micros.
|
||||
|
||||
Work on native backends for arm and x86_64 is in progress.
|
||||
|
||||
Libraries:
|
||||
==========
|
||||
voc comes with a useful set of libraries, in particular:
|
||||
– Oberon V4 and S3 compatible library set.
|
||||
– ooc (optimizing oberon-2 compiler) library port.
|
||||
– Ulm’s Oberon system library port.
|
||||
|
||||
This makes it easier to compile/port software which was developed by using those compilers.
|
||||
|
||||
Work on other compatibility layers is in progress.
|
||||
voc team also works on bindings to existing C/Pascal libraries.
|
||||
|
||||
Some other freely redistributable libraries are available as a part of voc distribution.
|
||||
|
||||
Licensing:
|
||||
==========
|
||||
voc’s frontend and C backend engine is a fork of Josef Templ’s Ofront, which has been released under FreeBSD License. Unlike Ofront, it does not include Oberon v4 environment.
|
||||
Ulm Oberon Library is distributed under GPL.
|
||||
ooc library is distributed under GPL.
|
||||
|
||||
voc tools are distributed under GPLv3.
|
||||
most of the runtime in libVishapOberon is distributed under GPLv3 with runtime exception.
|
||||
ulm and ooc libraries were distributed under GPL, thus static linking to those modules from libVishapOberon.a to proprietary code is disallowed.
|
||||
|
||||
Naming:
|
||||
=======
|
||||
Vishaps are dragons inhabited in Armenian Highlands.
|
||||
We decided to name the project “Vishap” because ties between compilers and dragons have ancient traditions.
|
||||
|
||||
Also, Vishaps are known in tales, fiction. [This page](http://blog.fogus.me/2015/04/27/six-works-of-computer-science-fiction/) refers to some technologies as “computer science fiction”. Among them to Oberon. This brings another meaning, Oberon is like aliens, ghosts. And Vishaps.
|
||||
|
||||
|
||||
How to use
|
||||
==========
|
||||
|
||||
First you need to [build](https://github.com/norayr/voc/blob/master/COMPILE) it.
|
||||
|
||||
As it is stated in [COMPILE](https://github.com/norayr/voc/blob/master/COMPILE) page, voc is installed in /opt/voc/bin if you did not change the prefix.
|
||||
So, in order to run voc you need to type
|
||||
|
||||
>/opt/voc/bin/voc
|
||||
|
||||
or add /opt/voc/bin to you PATH environment variable, and then just typing voc will execute it. For that you have to know how to work in Unix shell, and this knowledge is out of the scope of this document.
|
||||
|
||||
Type voc and it'll show you help.
|
||||
|
||||
Simple example
|
||||
============
|
||||
|
||||
Let's write hello world file:
|
||||
|
||||
>$ cat hey.Mod
|
||||
|
||||
<code>
|
||||
MODULE hey;
|
||||
|
||||
IMPORT Console;
|
||||
|
||||
BEGIN
|
||||
|
||||
Console.String("hey there"); Console.Ln
|
||||
|
||||
END hey.
|
||||
</code>
|
||||
|
||||
>voc -M hey.Mod
|
||||
|
||||
will compile your module and link it statically to libVishapOberon.
|
||||
|
||||
>voc -m hey.Mod
|
||||
|
||||
will link the module dynamically.
|
||||
|
||||
Example with two modules
|
||||
====================
|
||||
|
||||
If you have more than one module, and you want them to be compiled in to elf file then:
|
||||
Let's assume we have module M0 which imports M1;
|
||||
|
||||
>voc -l M1.Mod -s M0.Mod -M
|
||||
|
||||
Here -l is a global option.
|
||||
Module M1 will be compiled with -s option, i. e. sym file will be generated.
|
||||
|
||||
Module M0 will be compiled and linked statically.
|
||||
|
||||
Example with many modules
|
||||
======================
|
||||
|
||||
In case you have modules in different directories, like "ui", "logic", "math", then you need to export MODULES environment variable like this:
|
||||
|
||||
>export MODULES=".:ui:logic:math"
|
||||
|
||||
and after call voc
|
||||
|
||||
>voc -s ui0.Mod
|
||||
|
||||
Otherwise you can use full path:
|
||||
|
||||
>voc -s ui/ui0.Mod
|
||||
|
||||
|
||||
2
triage/gen_changelog.sh
Executable file
2
triage/gen_changelog.sh
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
git log --decorate > CHANGES.md
|
||||
sed -i 's/@/[at]/g' CHANGES.md
|
||||
39
triage/hints
Normal file
39
triage/hints
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
==how to port to a new platform==
|
||||
0) generate voc.par file for the target platform(if it does not exist in src/par).
|
||||
you can do it by compiling vocparam, and running it as "./vocparam > voc.par"
|
||||
1) generate voc, ocat, showdef source for target platform by running
|
||||
make -f makefile.gcc.<arch> port0
|
||||
(or copy corresponding voc.par to the source directory yourself, remove stage2 from port0 section of the makefile, and run make port0)
|
||||
2) transfer source to a target platform and write
|
||||
make port1
|
||||
(or use a crosscompiler)
|
||||
now you have voc, showdef, and ocat binaries for your target platform
|
||||
3) cp voc vocstatic
|
||||
make -f makefile for your target.
|
||||
that's how I've done x86 port.
|
||||
voc was originally run on x86_64.
|
||||
|
||||
notes** in practice everything is not always simple, because you may need to edit Unix.Mod, Args.Mod and SYSTEM.h, and put them to src/lib/system/gcc/<yourtarget>, and create new makefile for your target.
|
||||
|
||||
|
||||
==how to add a new option==
|
||||
|
||||
define it in OPM as a constant before defopt is defined.
|
||||
define a BOOLEAN variable in OPM which will describe if setting is set.
|
||||
add handling of a new option in OPM.ScanOptions
|
||||
set your BOOLEAN value in OPM.OpenPari (or in ScanOptions, after the CASE) so you can check it later.
|
||||
check your boolean when necessary, (see useParFile in OPM.GetOptions)
|
||||
add it in OPC.GenHeaderMsg function.
|
||||
|
||||
==known bugs==
|
||||
|
||||
when using SYSTEM.LSH(s, n) where s is SET,
|
||||
c compiler generates an error like
|
||||
"error: duplicate 'unsigned'",
|
||||
that's because SET is defined as unsigned in SYSTEM.h,
|
||||
while LSH is defined in SYSTEM.h as ((t)((unsigned t)(x)<<(n))),
|
||||
and it makes not possible to make SYSTEM.LSH with type SET.
|
||||
I don't want to prohibit it at the parser level
|
||||
because C backend is only one of possible backends.
|
||||
The solution currently is to cast set type to longint before lsh-ing it.
|
||||
And then casting it back to set if necessary.
|
||||
309
triage/makefile
Normal file
309
triage/makefile
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = x86_64
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = gcc
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
310
triage/makefile.darwin.clang.x86_64
Normal file
310
triage/makefile.darwin.clang.x86_64
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = darwin
|
||||
TARCH = x86_64
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = clang
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
#PRF = "/Users/noch/local"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g
|
||||
SHRLIBEXT = dylib
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = libtool -dynamic -lSystem -compatibility_version $(RELEASE) -current_version $(RELEASE) -install_name $(PREFIX)/lib/$(LIBRARY).$(SHRLIBEXT) -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
#ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.freebsd.clang.x86_64
Normal file
309
triage/makefile.freebsd.clang.x86_64
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = freebsd
|
||||
TARCH = x86_64
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = clang
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig -m $(PREFIX)/lib
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.linux.clang.powerpc
Normal file
309
triage/makefile.linux.clang.powerpc
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = powerpc
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = clang
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.linux.clang.x86_64
Normal file
309
triage/makefile.linux.clang.x86_64
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = x86_64
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = clang
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.linux.gcc.armv6j_hardfp
Normal file
309
triage/makefile.linux.gcc.armv6j_hardfp
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = armv6j_hardfp
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = gcc
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.linux.gcc.powerpc
Normal file
309
triage/makefile.linux.gcc.powerpc
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = powerpc
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = gcc
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.linux.gcc.x86
Normal file
309
triage/makefile.linux.gcc.x86
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = x86
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = gcc
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
309
triage/makefile.linux.gcc.x86_64
Normal file
309
triage/makefile.linux.gcc.x86_64
Normal file
|
|
@ -0,0 +1,309 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = linux
|
||||
TARCH = x86_64
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = gcc
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g -fno-stack-protector
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed -i.tmp "s#/opt#$(PRF)#g" src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -a src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
310
triage/makefile.openbsd.gcc.x86_64
Normal file
310
triage/makefile.openbsd.gcc.x86_64
Normal file
|
|
@ -0,0 +1,310 @@
|
|||
#SHELL := /bin/bash
|
||||
BUILDID=$(shell date +%Y/%m/%d)
|
||||
TOS = openbsd
|
||||
TARCH = x86_64
|
||||
#TARCH = x86 x86_64 armv6j armv6j_hardfp armv7a_hardfp powerpc
|
||||
CCOMP = gcc
|
||||
RELEASE = 1.1
|
||||
|
||||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(TOS)/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/v4_compat: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/lib/s3/$(TARCH):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)
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
VOCSTATIC = $(SETPATH) ./voc
|
||||
VOCPARAM = $(shell ./vocparam > voc.par)
|
||||
LIBNAME = VishapOberon
|
||||
LIBRARY = lib$(LIBNAME)
|
||||
|
||||
ifndef PRF
|
||||
PRF = "/opt"
|
||||
endif
|
||||
PREFIX = $(PRF)/voc-$(RELEASE)
|
||||
PREFIXLN = $(PRF)/voc
|
||||
|
||||
CCOPT = -fPIC $(INCLUDEPATH) -g
|
||||
SHRLIBEXT = so
|
||||
CC = $(CCOMP) $(CCOPT) -c
|
||||
CL = $(CCOMP) $(CCOPT)
|
||||
LD = $(CCOMP) -shared -o $(LIBRARY).$(SHRLIBEXT)
|
||||
# s is necessary to create index inside a archive
|
||||
ARCHIVE = ar rcs $(LIBRARY).a
|
||||
|
||||
#%.c: %.Mod
|
||||
#%.o: %.c
|
||||
# $(CC) $(input)
|
||||
|
||||
all: stage2 stage3 stage4 stage5 stage6 stage7
|
||||
|
||||
# when porting to new platform:
|
||||
# * put corresponding .par file into current directory. it can be generated on the target platform by compiling vocparam (stage0) and running (stage1)
|
||||
# * run make port0 - this will generate C source files for the target architecture
|
||||
# * move the source tree to the target machine, and compile (or compile here via crosscompiler) (port1)
|
||||
port0: stage2 stage3 stage4
|
||||
|
||||
# now compile C source files for voc, showdef and ocat on target machine (or by using crosscompiler)
|
||||
port1: stage5
|
||||
# after you have "voc" compiled for target architecture. replace vocstatic with it and run make on target platform to get everything compiled
|
||||
|
||||
# this builds binary which generates voc.par
|
||||
stage0: src/tools/vocparam/vocparam.c
|
||||
$(CL) -I src/lib/system/$(TOS)/$(CCOMP)/$(TARCH) -o vocparam src/tools/vocparam/vocparam.c
|
||||
|
||||
# this creates voc.par for a host architecture.
|
||||
# comment this out if you need to build a compiler for a different architecture.
|
||||
stage1:
|
||||
#rm voc.par
|
||||
#$(shell "./vocparam > voc.par")
|
||||
#./vocparam > voc.par
|
||||
$(VOCPARAM)
|
||||
|
||||
# this copies necessary voc.par to the current directory.
|
||||
# skip this if you are building compiler for the host architecture.
|
||||
stage2:
|
||||
cp src/par/voc.par.$(CCOMP).$(TARCH) voc.par
|
||||
# cp src/par/voc.par.gnu.x86_64 voc.par
|
||||
# cp src/par/voc.par.gnu.x86 voc.par
|
||||
# cp src/par/voc.par.gnu.armv6 voc.par
|
||||
# cp src/par/voc.par.gnu.armv7 voc.par
|
||||
cp src/voc/prf.Mod_default src/voc/prf.Mod
|
||||
|
||||
# this prepares modules necessary to build the compiler itself
|
||||
stage3:
|
||||
|
||||
$(VOCSTATIC0) -siapxPS SYSTEM.Mod
|
||||
$(VOCSTATIC0) -sPFS Args.Mod Console.Mod Unix.Mod
|
||||
sed "s#/opt#$(PRF)#g" src/voc/prf.Mod > tmp.Mod
|
||||
mv tmp.Mod src/voc/prf.Mod
|
||||
$(VOCSTATIC0) -sPFS prf.Mod
|
||||
$(VOCSTATIC0) -sPFS Strings.Mod architecture.Mod version.Mod Kernel0.Mod Modules.Mod
|
||||
$(VOCSTATIC0) -sxPFS Files0.Mod
|
||||
$(VOCSTATIC0) -sPFS Reals.Mod Texts0.Mod
|
||||
$(VOCSTATIC0) -sPFS vt100.Mod
|
||||
|
||||
# build the compiler
|
||||
stage4:
|
||||
$(VOCSTATIC0) -sPFS errors.Mod
|
||||
$(VOCSTATIC0) -sPFS extTools.Mod
|
||||
$(VOCSTATIC0) -sPFS OPM.cmdln.Mod
|
||||
$(VOCSTATIC0) -sxPFS OPS.Mod
|
||||
$(VOCSTATIC0) -sPFS OPT.Mod OPC.Mod OPV.Mod OPB.Mod OPP.Mod
|
||||
$(VOCSTATIC0) -smPS voc.Mod
|
||||
$(VOCSTATIC0) -smPS BrowserCmd.Mod
|
||||
$(VOCSTATIC0) -smPS OCatCmd.Mod
|
||||
|
||||
#this is to build the compiler from C sources.
|
||||
#this is a way to create a bootstrap binary.
|
||||
stage5:
|
||||
$(CC) SYSTEM.c Args.c Console.c Modules.c Unix.c \
|
||||
Strings.c architecture.c prf.c version.c Kernel0.c Files0.c Reals.c Texts0.c vt100.c \
|
||||
extTools.c \
|
||||
OPM.c OPS.c OPT.c OPC.c OPV.c OPB.c OPP.c errors.c
|
||||
|
||||
$(CL) -static voc.c -o voc \
|
||||
SYSTEM.o Args.o Console.o Modules.o Unix.o \
|
||||
Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o vt100.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 Strings.o architecture.o prf.o version.o Kernel0.o Files0.o Reals.o Texts0.o
|
||||
|
||||
# build all library files
|
||||
stage6:
|
||||
#v4 libs
|
||||
$(VOCSTATIC) -sPF Kernel.Mod
|
||||
$(VOCSTATIC) -sPF Files.Mod
|
||||
$(VOCSTATIC) -sPF Texts.Mod
|
||||
$(VOCSTATIC) -sPF Printer.Mod
|
||||
$(VOCSTATIC) -sPF Strings.Mod
|
||||
$(VOCSTATIC) -sPF Sets.Mod
|
||||
$(VOCSTATIC) -sPF Sets0.Mod
|
||||
$(VOCSTATIC) -sPF Oberon.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocAscii.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod
|
||||
$(VOCSTATIC) -sPF oocOakStrings.Mod
|
||||
$(VOCSTATIC) -sPF oocCharClass.Mod
|
||||
$(VOCSTATIC) -sPF oocConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF oocIntConv.Mod
|
||||
$(VOCSTATIC) -sPF oocIntStr.Mod
|
||||
$(VOCSTATIC) -sPF oocSysClock.Mod
|
||||
$(VOCSTATIC) -sPF oocTime.Mod
|
||||
$(VOCSTATIC) -sPF oocRandomNumbers.Mod
|
||||
# $(VOCSTATIC) -s oocLongStrings.Mod
|
||||
# $(CC) oocLongStrings.c
|
||||
# $(VOCSTATIC) -s oocMsg.Mod
|
||||
# $(CC) oocMsg.c
|
||||
|
||||
|
||||
#ooc2 libs
|
||||
$(VOCSTATIC) -sPF ooc2Strings.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Ascii.Mod
|
||||
$(VOCSTATIC) -sPF ooc2CharClass.Mod
|
||||
$(VOCSTATIC) -sPF ooc2ConvTypes.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntConv.Mod
|
||||
$(VOCSTATIC) -sPF ooc2IntStr.Mod
|
||||
$(VOCSTATIC) -sPF ooc2Real0.Mod
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sPF oocLowReal.Mod oocLowLReal.Mod
|
||||
$(VOCSTATIC) -sPF oocRealMath.Mod oocOakMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLongInts.Mod
|
||||
$(VOCSTATIC) -sPF oocComplexMath.Mod oocLComplexMath.Mod
|
||||
$(VOCSTATIC) -sPF oocLRealConv.Mod oocLRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocRealConv.Mod oocRealStr.Mod
|
||||
$(VOCSTATIC) -sPF oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sPF oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sPF oocFilenames.Mod
|
||||
$(VOCSTATIC) -sPF oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sPF oocC.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sPF ulmSys.Mod
|
||||
$(VOCSTATIC) -sPF ulmSYSTEM.Mod
|
||||
$(VOCSTATIC) -sPF ulmASCII.Mod
|
||||
$(VOCSTATIC) -sPF ulmSets.Mod
|
||||
$(VOCSTATIC) -sPF ulmObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmPriorities.Mod
|
||||
$(VOCSTATIC) -sPF ulmServices.Mod
|
||||
$(VOCSTATIC) -sPF ulmEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmResources.Mod
|
||||
$(VOCSTATIC) -sPF ulmForwarders.Mod
|
||||
$(VOCSTATIC) -sPF ulmRelatedEvents.Mod
|
||||
$(VOCSTATIC) -sPF ulmIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmProcess.Mod
|
||||
$(VOCSTATIC) -sPF ulmTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreams.Mod
|
||||
$(VOCSTATIC) -sPF ulmAssertions.Mod
|
||||
$(VOCSTATIC) -sPF ulmIndirectDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmIEEE.Mod
|
||||
$(VOCSTATIC) -sPF ulmMC68881.Mod
|
||||
$(VOCSTATIC) -sPF ulmReals.Mod
|
||||
$(VOCSTATIC) -sPF ulmPrint.Mod
|
||||
$(VOCSTATIC) -sPF ulmWrite.Mod
|
||||
$(VOCSTATIC) -sPF ulmTexts.Mod
|
||||
$(VOCSTATIC) -sPF ulmStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmConstStrings.Mod
|
||||
$(VOCSTATIC) -sPF ulmPlotters.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysTypes.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysErrors.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmLoader.Mod
|
||||
$(VOCSTATIC) -sPF ulmNetIO.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentObjects.Mod
|
||||
$(VOCSTATIC) -sPF ulmPersistentDisciplines.Mod
|
||||
$(VOCSTATIC) -sPF ulmOperations.Mod
|
||||
$(VOCSTATIC) -sPF ulmScales.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimes.Mod
|
||||
$(VOCSTATIC) -sPF ulmClocks.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmStreamConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmTimeConditions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysConversions.Mod
|
||||
$(VOCSTATIC) -sPF ulmSysStat.Mod
|
||||
$(VOCSTATIC) -sPF ulmCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmCipherOps.Mod
|
||||
$(VOCSTATIC) -sPF ulmBlockCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmAsymmetricCiphers.Mod
|
||||
$(VOCSTATIC) -sPF ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sPF ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sPF ulmTCrypt.Mod
|
||||
$(VOCSTATIC) -sPF ulmIntOperations.Mod
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sPF powStrings.Mod
|
||||
|
||||
#misc libs
|
||||
$(VOCSTATIC) -sPF MultiArrays.Mod
|
||||
$(VOCSTATIC) -sPF MultiArrayRiders.Mod
|
||||
$(VOCSTATIC) -sPF MersenneTwister.Mod
|
||||
$(VOCSTATIC) -sPF Listen.Mod
|
||||
|
||||
#s3 libs
|
||||
$(VOCSTATIC) -sPF ethBTrees.Mod
|
||||
$(VOCSTATIC) -sPF ethMD5.Mod
|
||||
$(VOCSTATIC) -sPF ethSets.Mod
|
||||
$(VOCSTATIC) -sPF ethZlib.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibBuffers.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibInflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibDeflate.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethZlibWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethZip.Mod
|
||||
$(VOCSTATIC) -sPF ethRandomNumbers.Mod
|
||||
$(VOCSTATIC) -sPF ethGZReaders.Mod
|
||||
$(VOCSTATIC) -sPF ethGZWriters.Mod
|
||||
$(VOCSTATIC) -sPF ethUnicode.Mod
|
||||
$(VOCSTATIC) -sPF ethDates.Mod
|
||||
$(VOCSTATIC) -sPF ethReals.Mod
|
||||
$(VOCSTATIC) -sPF ethStrings.Mod
|
||||
|
||||
# build remaining tools
|
||||
# $(VOCSTATIC0) -sPFS compatIn.Mod
|
||||
# $(VOCSTATIC0) -smPS vmake.Mod
|
||||
# $(CC) compatIn.c
|
||||
# $(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 Strings.o oocIntStr.o oocConvTypes.o oocIntConv.o
|
||||
|
||||
|
||||
|
||||
stage7:
|
||||
#remove non library objects
|
||||
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
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
# objects
|
||||
rm *.h
|
||||
rm *.c
|
||||
rm *.sym
|
||||
rm *.o
|
||||
rm *.a
|
||||
rm *.$(SHRLIBEXT)
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
cp showdef $(PREFIX)/bin/
|
||||
cp ocat $(PREFIX)/bin/
|
||||
#cp vmake $(PREFIX)/bin/
|
||||
cp -RPp src $(PREFIX)/
|
||||
|
||||
test -d $(PREFIX)/lib/voc | mkdir -p $(PREFIX)/lib/voc
|
||||
test -d $(PREFIX)/lib/voc/ | mkdir -p $(PREFIX)/lib/voc
|
||||
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).$(SHRLIBEXT) $(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/
|
||||
ldconfig -m $(PREFIX)/lib
|
||||
ln -s $(PREFIX) $(PREFIXLN)
|
||||
|
||||
# cp *.o $(PREFIX)/lib/voc/$(RELEASE)/obj/
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)
|
||||
rm -rf $(PREFIXLN)
|
||||
45
triage/quick_start
Normal file
45
triage/quick_start
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
|
||||
|
||||
Firstly, make sure that voc binary is in your path.
|
||||
You may need to issue
|
||||
# PATH=/opt/voc/bin:$PATH
|
||||
== Compiling a main module==
|
||||
In order to compile a main module, and get it linked dynamically to libVishapOberon.so, issue
|
||||
|
||||
# voc -m hello.Mod
|
||||
|
||||
If you want it to be linked statically, then
|
||||
|
||||
# voc -M hello.Mod
|
||||
|
||||
It is necessary to specify -m or -M key so that compiler generates _start entry point.
|
||||
Otherwise the module will be generated as .o object file.
|
||||
|
||||
Currently, voc by default asks gcc to include debugging information (-g) so you may want to strip resulting binaries before distributing them
|
||||
|
||||
# strip hello
|
||||
|
||||
==Creating shared object==
|
||||
|
||||
Compile several modules but not link resulting object files.
|
||||
voc -s M0.Mod M1.Mod Mn.Mod
|
||||
|
||||
Then create a shared object with
|
||||
|
||||
# ld -shared -o libYouLib.so M0.o M1.o Mn.o
|
||||
|
||||
To create a static .a archive do
|
||||
|
||||
# ar rcs libYourLib.a M0.o M1.o Mn.o
|
||||
|
||||
== Sorting modules in different directories ==
|
||||
|
||||
By default voc looks for modules only in default path, where distributed libVishapOberon library symbol files are located, and in current directory. If you have many modules and want to sort them into different directories, then you need to tell compiler where to look for your modules.
|
||||
For that we have introduced MODULES environment variable.
|
||||
Lets assume, you have directories "logic", "graphics", "misc" in current directory, and you want compiler to search for your source modules there.
|
||||
|
||||
# export MODULES=".:logic:graphics:misc"
|
||||
|
||||
Directories will be searched in the same order as specified. In this example we specify current directory, which is not necessary, because it's already in a search path by default.
|
||||
|
||||
|
||||
133
triage/voc.spec
Normal file
133
triage/voc.spec
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
# RPM spec file for package
|
||||
#
|
||||
# Copyright 2014 David Egan Evans, Magna UT 84044 USA
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software for
|
||||
# any purpose with or without fee is hereby granted, provided that the
|
||||
# above copyright notice and this permission notice appear in all
|
||||
# copies.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||
# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||
# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA
|
||||
# OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
# PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
#some changes added by Norayr Chilingarian
|
||||
|
||||
%define _prefix /opt/%{name}-%{version}
|
||||
%define _bindir %{_prefix}/bin
|
||||
%define _datadir %{_prefix}/share
|
||||
%define _includedir %{_prefix}/include
|
||||
%define _libdir %{_prefix}/lib
|
||||
%define packer %(finger -lp `echo "$USER"` | head -n 1 | cut -d" " -f2)
|
||||
|
||||
Name: voc
|
||||
Summary: Vishap Oberon-2 compiler
|
||||
Version: 1.1
|
||||
Release: 1
|
||||
License: GPLv3
|
||||
Vendor: D. E. Evans <sinuhe@gnu.org>
|
||||
Packager: %{packer}
|
||||
Group: Development/Languages
|
||||
Source: http://oberon.vishap.am/voc/voc-1.1.src.tar.bz2
|
||||
# this is ~/rpmbuild/SOURCES/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-build
|
||||
|
||||
#BuildArch: i686
|
||||
#makes this .spec more generic
|
||||
#BuildArch: %{_arch}
|
||||
|
||||
#on modern rhel/fedora/pidora systems
|
||||
BuildRequires: glibc-static, libX11-devel
|
||||
|
||||
#on older systems like rhel4 it'll be
|
||||
#BuildRequires: glibc-devel, xorg-x11-devel
|
||||
|
||||
#basicly we neet /usr/include/X11/Xlib.h and /usr/lib/libc.a
|
||||
#makes this more portable across different distributions
|
||||
#BuildRequires: /usr/include/X11/Xlib.h /usr/lib/libc.a
|
||||
|
||||
%description
|
||||
Vishap's Oberon Compiler (voc) uses a C backend to drive compilation
|
||||
of Oberon programs under Unix. voc includes libraries from the Ulm
|
||||
and oo2c Oberon compilers as well as from Ofront, as well as default
|
||||
libraries complying with the Oakwood Guidelines for Oberon-2 compilers.
|
||||
|
||||
%prep
|
||||
echo Building %{name}-%{version}-%{release}
|
||||
%setup -q -n %{name}
|
||||
|
||||
%build
|
||||
#choose corresponding makefile depending on architecture.
|
||||
if [ %{_arch} == "i386" ] || [ %{_arch} == "i686" ]
|
||||
then
|
||||
%{__make} -f makefile.linux.gcc.x86
|
||||
elif [ %{_arch} == "arm" ] #rpmbuild on pidora/raspberry identifies arch as arm
|
||||
then
|
||||
%{__make} -f makefile.linux.gcc.armv6j_hardfp
|
||||
|
||||
elif [ %{_arch} == "armv6hl" ]
|
||||
then
|
||||
%{__make} -f makefile.linux.gcc.armv6j_hardfp
|
||||
elif [ %{_arch} == "armv7" ]
|
||||
then
|
||||
%{__make} -f makefile.linux.gcc.armv7a_hardfp
|
||||
else
|
||||
%{__make} -f makefile.linux.gcc.%{_arch}
|
||||
fi
|
||||
|
||||
%install
|
||||
%{__install} -d %{buildroot}/%{_prefix}/bin
|
||||
%{__install} -d %{buildroot}/%{_datadir}
|
||||
%{__install} -d %{buildroot}/%{_datadir}/%{name}
|
||||
%{__install} -d %{buildroot}/%{_libdir}
|
||||
%{__install} -d %{buildroot}/%{_libdir}/%{name}
|
||||
%{__install} -d %{buildroot}/%{_libdir}/%{name}/obj
|
||||
%{__install} -d %{buildroot}/%{_libdir}/%{name}/sym
|
||||
%{__install} -d %{buildroot}/etc/ld.so.conf.d
|
||||
%{__install} -d %{buildroot}/etc/profile.d
|
||||
cp voc %{buildroot}/%{_bindir}
|
||||
cp showdef %{buildroot}/%{_bindir}
|
||||
cp ocat %{buildroot}/%{_bindir}
|
||||
cp *.so %{buildroot}%{_libdir}
|
||||
cp *.a %{buildroot}%{_libdir}
|
||||
cp *.c %{buildroot}/%{_libdir}/%{name}/obj
|
||||
cp *.h %{buildroot}/%{_libdir}/%{name}/obj
|
||||
cp *.sym %{buildroot}/%{_libdir}/%{name}/sym
|
||||
cp -Rp src %{buildroot}%{_prefix}
|
||||
ln -s %{_prefix} %{buildroot}/opt/%{name}
|
||||
cp FAQ.md CHANGES.md README.md LICENSE hints quick_start %{buildroot}/%{_datadir}/%{name}
|
||||
cp 05vishap.conf %{buildroot}/etc/ld.so.conf.d/
|
||||
echo 'PATH=${PATH}:%{_bindir}' >%{buildroot}/etc/profile.d/%{name}.sh
|
||||
|
||||
%post
|
||||
ldconfig
|
||||
|
||||
%postun
|
||||
%{__rm} -f /etc/profile.d/%{name}.sh
|
||||
ldconfig
|
||||
|
||||
%clean
|
||||
%{__rm} -Rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/*
|
||||
%{_datadir}/%{name}/*
|
||||
%{_libdir}/*
|
||||
%{_prefix}/src/*
|
||||
/opt/%{name}
|
||||
/etc/ld.so.conf.d/
|
||||
/etc/profile.d/
|
||||
|
||||
%changelog
|
||||
* Thu Jan 29 2015 - N. Chilingarian <norayr [at] vishap.am>
|
||||
- 1.1 release, see changelog.
|
||||
* Thu Sep 18 2014 - N. Chilingarian <norayr [at] vishap.am>
|
||||
- 1.0.1 release of voc, see CHANGES.md file for changes history
|
||||
* Tue Sep 9 2014 - D. E. Evans <sinuhe@gnu.org>
|
||||
- Initial 1.0 release.
|
||||
Loading…
Add table
Add a link
Reference in a new issue