diff options
| author | Sébastien Hinderer <Sebastien.Hinderer@inria.fr> | 2016-12-20 16:54:20 +0100 |
|---|---|---|
| committer | Damien Doligez <damien.doligez@gmail.com> | 2016-12-20 16:54:20 +0100 |
| commit | 68ad1bb9233d4d80a2364953eaaebcf58646d36c (patch) | |
| tree | 5135406fb37692a51ecd791c4113fc9e771a83ad /asmrun | |
| parent | afbd5a389a5dd86f79d4a8182e984f19f5d69447 (diff) | |
| download | ocaml-68ad1bb9233d4d80a2364953eaaebcf58646d36c.tar.gz | |
Merge Unix and Windows build systems in the asmrun directory (#941)
* Merge Unix and Windows build systems in the asmrun directory
Changes in make variables:
- Removal of the SHARED make variable, which had the same
semantics than SUPPORTS_SHARED_LIBRARIES, the later having values true
and false while the former had values shared and noshared.
(SHARED was not defined on Windows)
- RUNTIMED now takes values true and false rather than runtimed and
noruntimed
* Do not use -O0 in asmrun's Makefile
* Add /asmrun/win32.c to .gitignore
* Build PIC libraries only under Unix
This makes things closer to what they were before, since PIC objects
were not built for Windows.
Diffstat (limited to 'asmrun')
| -rw-r--r-- | asmrun/Makefile | 232 | ||||
| -rw-r--r-- | asmrun/Makefile.nt | 60 | ||||
| -rw-r--r-- | asmrun/Makefile.shared | 33 |
3 files changed, 129 insertions, 196 deletions
diff --git a/asmrun/Makefile b/asmrun/Makefile index ccb0ee8d8a..dbab4142eb 100644 --- a/asmrun/Makefile +++ b/asmrun/Makefile @@ -15,159 +15,183 @@ include ../config/Makefile -include Makefile.shared +LINKEDFILES=misc.c freelist.c major_gc.c minor_gc.c memory.c alloc.c array.c \ + compare.c ints.c floats.c str.c io.c extern.c intern.c hash.c sys.c \ + parsing.c gc_ctrl.c terminfo.c md5.c obj.c lexing.c printexc.c callback.c \ + weak.c compact.c finalise.c meta.c custom.c main.c globroots.c \ + $(UNIX_OR_WIN32).c dynlink.c signals.c debugger.c startup_aux.c \ + backtrace.c afl.c -CC=$(NATIVECC) -FLAGS=-I../byterun -DNATIVE_CODE \ - -DTARGET_$(ARCH) -DMODEL_$(MODEL) -DSYS_$(SYSTEM) $(IFLEXDIR) \ - $(LIBUNWIND_INCLUDE_FLAGS) -#CFLAGS=$(FLAGS) -g -O0 -CFLAGS=$(FLAGS) -g -O0 $(NATIVECCCOMPOPTS) -DFLAGS=$(FLAGS) -g -DDEBUG $(NATIVECCCOMPOPTS) -IFLAGS=$(FLAGS) -DCAML_INSTR -PFLAGS=$(FLAGS) -pg -DPROFILING $(NATIVECCPROFOPTS) $(NATIVECCCOMPOPTS) -PICFLAGS=$(FLAGS) $(SHAREDCCCOMPOPTS) $(NATIVECCCOMPOPTS) - -ASMOBJS=$(ARCH).o +INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR) -OBJS=$(COBJS) $(ASMOBJS) -DOBJS=$(COBJS:.o=.d.o) $(ASMOBJS) -IOBJS=$(COBJS:.o=.i.o) $(ASMOBJS) -POBJS=$(COBJS:.o=.p.o) $(ASMOBJS:.o=.p.o) -PICOBJS=$(COBJS:.o=.pic.o) $(ASMOBJS:.o=.pic.o) +CC=$(NATIVECC) -ifeq "$(PROFILING)" "true" -PROFILINGTARGET = prof +ifeq "$(UNIX_OR_WIN32)" "win32" +LN = cp else -PROFILINGTARGET = noprof +LN = ln -s endif -all: libasmrun.a all-$(RUNTIMED) all-$(PROFILINGTARGET) all-$(SHARED) +FLAGS=\ + -I../byterun \ + -DNATIVE_CODE -DTARGET_$(ARCH) -ifeq "$(RUNTIMEI)" "true" -all: libasmruni.a +ifeq "$(UNIX_OR_WIN32)" "unix" +FLAGS += -DMODEL_$(MODEL) +endif + +FLAGS += -DSYS_$(SYSTEM) \ + $(NATIVECCCOMPOPTS) $(IFLEXDIR) \ + $(LIBUNWIND_INCLUDE_FLAGS) + +ifeq "$(TOOLCHAIN)" "msvc" +DFLAGS=$(FLAGS) -DDEBUG +PFLAGS=$(FLAGS) -DPROFILING $(NATIVECCPROFOPTS) +OUTPUTOBJ = -Fo +ASMOBJS=$(ARCH)nt.$(O) +else +DFLAGS=$(FLAGS) -g -DDEBUG +PFLAGS=$(FLAGS) -pg -DPROFILING $(NATIVECCPROFOPTS) +OUTPUTOBJ = -o +ASMOBJS=$(ARCH).$(O) endif -libasmrun.a: $(OBJS) - rm -f libasmrun.a - $(ARCMD) rc libasmrun.a $(OBJS) - $(RANLIB) libasmrun.a +IFLAGS=$(FLAGS) -DCAML_INSTR +PICFLAGS=$(FLAGS) $(SHAREDCCCOMPOPTS) -all-noruntimed: -.PHONY: all-noruntimed +ASPPFLAGS = -DSYS_$(SYSTEM) +ifeq "$(UNIX_OR_WIN32)" "unix" +ASPPFLAGS += -DMODEL_$(MODEL) +CFLAGS=$(FLAGS) -g +else +CFLAGS=$(FLAGS) +endif -all-runtimed: libasmrund.a -.PHONY: all-runtimed +COBJS=startup_aux.$(O) startup.$(O) main.$(O) fail.$(O) \ + roots.$(O) signals.$(O) signals_asm.$(O) misc.$(O) freelist.$(O) \ + major_gc.$(O) minor_gc.$(O) memory.$(O) alloc.$(O) compare.$(O) \ + ints.$(O) floats.$(O) str.$(O) array.$(O) io.$(O) extern.$(O) \ + intern.$(O) hash.$(O) sys.$(O) parsing.$(O) gc_ctrl.$(O) \ + terminfo.$(O) md5.$(O) obj.$(O) lexing.$(O) $(UNIX_OR_WIN32).$(O) \ + printexc.$(O) callback.$(O) weak.$(O) compact.$(O) finalise.$(O) \ + custom.$(O) globroots.$(O) backtrace_prim.$(O) backtrace.$(O) \ + natdynlink.$(O) debugger.$(O) meta.$(O) dynlink.$(O) \ + clambda_checks.$(O) spacetime.$(O) spacetime_snapshot.$(O) \ + spacetime_offline.$(O) afl.$(O) -libasmrund.a: $(DOBJS) - rm -f libasmrund.a - $(ARCMD) rc libasmrund.a $(DOBJS) - $(RANLIB) libasmrund.a +OBJS=$(COBJS) $(ASMOBJS) -libasmruni.a: $(IOBJS) - rm -f $@ - $(ARCMD) rc $@ $^ - $(RANLIB) $@ +DOBJS=$(COBJS:.$(O)=.d.$(O)) $(ASMOBJS) +IOBJS=$(COBJS:.$(O)=.i.$(O)) $(ASMOBJS) +POBJS=$(COBJS:.$(O)=.p.$(O)) $(ASMOBJS:.$(O)=.p.$(O)) +PICOBJS=$(COBJS:.$(O)=.pic.$(O)) $(ASMOBJS:.$(O)=.pic.$(O)) -all-noprof: +TARGETS = libasmrun.$(A) -all-prof: libasmrunp.a +ifeq "$(RUNTIMED)" "true" +TARGETS += libasmrund.$(A) +endif -libasmrunp.a: $(POBJS) - rm -f libasmrunp.a - $(ARCMD) rc libasmrunp.a $(POBJS) - $(RANLIB) libasmrunp.a +ifeq "$(RUNTIMEI)" "true" +TARGETS += libasmruni.$(A) +endif -all-noshared: +ifeq "$(PROFILING)" "true" +TARGETS += libasmrunp.$(A) +endif -all-shared: libasmrun_pic.a libasmrun_shared.so +ifeq "$(UNIX_OR_WIN32)" "unix" +ifeq "$(SUPPORTS_SHARED_LIBRARIES)" "true" +TARGETS += libasmrun_pic.$(A) libasmrun_shared.$(SO) +endif +endif -libasmrun_pic.a: $(PICOBJS) - rm -f libasmrun_pic.a - $(ARCMD) rc libasmrun_pic.a $(PICOBJS) - $(RANLIB) libasmrun_pic.a +.PHONY: all +all: $(TARGETS) -libasmrun_shared.so: $(PICOBJS) - $(MKDLL) -o libasmrun_shared.so $(PICOBJS) $(NATIVECCLIBS) +libasmrun.$(A): $(OBJS) + $(call MKLIB,$@, $^) -INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR) +libasmrund.$(A): $(DOBJS) + $(call MKLIB,$@, $^) -install:: - cp libasmrun.a $(INSTALL_LIBDIR)/libasmrun.a - cd $(INSTALL_LIBDIR); $(RANLIB) libasmrun.a -.PHONY: install-default +libasmruni.$(A): $(IOBJS) + $(call MKLIB,$@, $^) -ifeq "$(RUNTIMED)" "runtimed" -install:: - cp libasmrund.a $(INSTALL_LIBDIR)/libasmrund.a - cd $(INSTALL_LIBDIR); $(RANLIB) libasmrund.a -endif +libasmrunp.$(A): $(POBJS) + $(call MKLIB,$@, $^) -ifeq "$(RUNTIMEI)" "true" -install:: - cp libasmruni.a $(INSTALL_LIBDIR)/libasmruni.a - cd $(INSTALL_LIBDIR); $(RANLIB) libasmruni.a -endif +libasmrun_pic.$(A): $(PICOBJS) + $(call MKLIB,$@, $^) -ifeq "$(PROFILING)" "true" -install:: - cp libasmrunp.a $(INSTALL_LIBDIR)/libasmrunp.a -endif +libasmrun_shared.$(SO): $(PICOBJS) + $(MKDLL) -o $@ $^ $(NATIVECCLIBS) -ifeq "$(SHARED)" "shared" -install:: - cp libasmrun_pic.a $(INSTALL_LIBDIR)/libasmrun_pic.a - cd $(INSTALL_LIBDIR); $(RANLIB) libasmrun_pic.a - cp libasmrun_shared.so $(INSTALL_LIBDIR)/libasmrun_shared.so -endif +.PHONY: install +install: + cp $(TARGETS) "$(INSTALL_LIBDIR)" $(LINKEDFILES): %.c: ../byterun/%.c - ln -s ../byterun/$*.c $*.c + $(LN) $< $@ -clean:: - rm -f $(LINKEDFILES) +%.d.$(O): %.c + $(CC) -c $(DFLAGS) $(OUTPUTOBJ)$@ $< -%.d.o: %.c - $(CC) -c $(DFLAGS) -o $@ $< +%.i.$(O): %.c + $(CC) -c $(IFLAGS) $(OUTPUTOBJ)$@ $< -%.i.o : %.c - $(CC) -c $(IFLAGS) -o $@ $< +%.p.$(O): %.c + $(CC) -c $(PFLAGS) $(OUTPUTOBJ)$@ $< -%.p.o: %.c - $(CC) -c $(PFLAGS) -o $@ $< +%.pic.$(O): %.c + $(CC) -c $(PICFLAGS) $(OUTPUTOBJ)$@ $< -%.pic.o: %.c - $(CC) -c $(PICFLAGS) -o $@ $< +%.$(O): %.c + $(CC) $(CFLAGS) -c $< %.o: %.S - $(ASPP) -DSYS_$(SYSTEM) -DMODEL_$(MODEL) -o $@ $< || \ + $(ASPP) $(ASPPFLAGS) -o $@ $< || \ { echo "If your assembler produced syntax errors, it is probably";\ echo "unhappy with the preprocessor. Check your assembler, or";\ echo "try producing $*.o by hand.";\ exit 2; } %.p.o: %.S - $(ASPP) -DSYS_$(SYSTEM) -DMODEL_$(MODEL) $(ASPPPROFFLAGS) -o $@ $< + $(ASPP) $(ASPPFLAGS) $(ASPPPROFFLAGS) -o $@ $< %.pic.o: %.S - $(ASPP) -DSYS_$(SYSTEM) -DMODEL_$(MODEL) $(SHAREDCCCOMPOPTS) -o $@ $< + $(ASPP) $(ASPPFLAGS) $(SHAREDCCCOMPOPTS) -o $@ $< -%.o: %.s - $(ASPP) -DSYS_$(SYSTEM) -o $@ $< +%.obj: %.asm + $(ASM)$@ $< -%.p.o: %.s - $(ASPP) -DSYS_$(SYSTEM) $(ASPPPROFFLAGS) -o $@ $< +%.pic.obj: %.asm + $(ASM)$@ $< -%.pic.o: %.s - $(ASPP) -DSYS_$(SYSTEM) $(SHAREDCCCOMPOPTS) -o $@ $< +.PHONY: clean +clean: + rm -f $(LINKEDFILES) + rm -f *.$(O) *.$(A) *.$(SO) -clean:: - rm -f *.o *.a *.so *~ +.PHONY: distclean +distclean: clean + rm -r *~ -depend: $(COBJS:.o=.c) ${LINKEDFILES} +ifneq "$(TOOLCHAIN)" "msvc" +.PHONY: depend +depend: $(COBJS:.$(O)=.c) $(LINKEDFILES) $(CC) -MM $(FLAGS) *.c > .depend $(CC) -MM $(FLAGS) -DPROFILING *.c | sed -e 's/\.o/.p.o/' >> .depend - $(CC) -MM $(FLAGS) -DDEBUG *.c | sed -e 's/\.o/.d.o/' >> .depend - $(CC) -MM $(FLAGS) -DCAML_INSTR *.c | sed -e 's/\.o/.i.o/' >> .depend + $(CC) -MM $(FLAGS) -DDEBUG *.c | sed -e 's/\.o/.d.o)/' >> .depend + $(CC) -MM $(FLAGS) -DCAML_INSTR *.c | sed -e 's/\.o/.i.o' >> .depend +endif +ifeq "$(UNIX_OR_WIN32)" "win32" +.depend.nt: .depend + sed -e 's/\.o/.$(O)/g' .depend > .depend.nt + +include .depend.nt + +else include .depend +endif diff --git a/asmrun/Makefile.nt b/asmrun/Makefile.nt index ad077bd18d..ed9900bb9a 100644 --- a/asmrun/Makefile.nt +++ b/asmrun/Makefile.nt @@ -13,62 +13,4 @@ #* * #************************************************************************** -include ../config/Makefile - -include Makefile.shared - -CC=$(NATIVECC) -CFLAGS=-I../byterun -DNATIVE_CODE -DTARGET_$(ARCH) -DSYS_$(SYSTEM) \ - $(NATIVECCCOMPOPTS) $(IFLEXDIR) - -ifeq ($(TOOLCHAIN),mingw) -ASMOBJS=$(ARCH).o -else -ASMOBJS=$(ARCH)nt.obj -endif - -OBJS=$(COBJS) $(ASMOBJS) - -all: libasmrun.$(A) - -libasmrun.$(A): $(OBJS) - $(call MKLIB,libasmrun.$(A), $(OBJS)) - -i386nt.obj: i386nt.asm - $(ASM)i386nt.obj i386nt.asm - -amd64nt.obj: amd64nt.asm - $(ASM)amd64nt.obj amd64nt.asm - -i386.o: i386.S - $(ASPP) -DSYS_$(SYSTEM) i386.S - -amd64.o: amd64.S - $(ASPP) -DSYS_$(SYSTEM) amd64.S - -INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR) - -install: - cp libasmrun.$(A) "$(INSTALL_LIBDIR)" - -$(LINKEDFILES): %.c: ../byterun/%.c - cp ../byterun/$*.c $*.c - -# Need special compilation rule so as not to do -I../byterun -#win32.$(O): ../byterun/win32.c -# $(CC) -c $(NATIVECCCOMPOPTS) -DNATIVE_CODE $(IFLEXDIR) \ -# ../byterun/win32.c - -%.$(O): %.c - $(CC) $(CFLAGS) -c $< - -clean:: - rm -f $(LINKEDFILES) - -clean:: - rm -f *.$(O) *.$(A) *~ - -.depend.nt: .depend - sed -e 's/\.o/.$(O)/g' .depend > .depend.nt - -include .depend.nt +include Makefile diff --git a/asmrun/Makefile.shared b/asmrun/Makefile.shared deleted file mode 100644 index 625cb0ced0..0000000000 --- a/asmrun/Makefile.shared +++ /dev/null @@ -1,33 +0,0 @@ -#************************************************************************** -#* * -#* OCaml * -#* * -#* Xavier Leroy, projet Cristal, INRIA Rocquencourt * -#* * -#* Copyright 1999 Institut National de Recherche en Informatique et * -#* en Automatique. * -#* * -#* All rights reserved. This file is distributed under the terms of * -#* the GNU Lesser General Public License version 2.1, with the * -#* special exception on linking described in the file LICENSE. * -#* * -#************************************************************************** - -COBJS=startup_aux.$(O) startup.$(O) main.$(O) fail.$(O) \ - roots.$(O) signals.$(O) signals_asm.$(O) misc.$(O) freelist.$(O) \ - major_gc.$(O) minor_gc.$(O) memory.$(O) alloc.$(O) compare.$(O) \ - ints.$(O) floats.$(O) str.$(O) array.$(O) io.$(O) extern.$(O) \ - intern.$(O) hash.$(O) sys.$(O) parsing.$(O) gc_ctrl.$(O) \ - terminfo.$(O) md5.$(O) obj.$(O) lexing.$(O) $(UNIX_OR_WIN32).$(O) \ - printexc.$(O) callback.$(O) weak.$(O) compact.$(O) finalise.$(O) \ - custom.$(O) globroots.$(O) backtrace_prim.$(O) backtrace.$(O) \ - natdynlink.$(O) debugger.$(O) meta.$(O) dynlink.$(O) \ - clambda_checks.$(O) spacetime.$(O) spacetime_snapshot.$(O) \ - spacetime_offline.$(O) afl.$(O) - -LINKEDFILES=misc.c freelist.c major_gc.c minor_gc.c memory.c alloc.c array.c \ - compare.c ints.c floats.c str.c io.c extern.c intern.c hash.c sys.c \ - parsing.c gc_ctrl.c terminfo.c md5.c obj.c lexing.c printexc.c callback.c \ - weak.c compact.c finalise.c meta.c custom.c main.c globroots.c \ - $(UNIX_OR_WIN32).c dynlink.c signals.c debugger.c startup_aux.c backtrace.c \ - afl.c |
