author | Camm Maguire <camm@transcendence.maguirefamily.org> | 2025年04月27日 16:03:33 -0400 |
---|---|---|
committer | Camm Maguire <camm@transcendence.maguirefamily.org> | 2025年04月27日 16:05:38 -0400 |
commit | e7c611c877a66a01a1964c873fd38c558d5aee73 (patch) | |
tree | 2fd0d831e8ff968a2c0428b16ca2df79d18c8f25 | |
parent | b5cc6d204018b251d4ba1ea7e8beb733ef94de28 (diff) | |
download | gcl-e7c611c877a66a01a1964c873fd38c558d5aee73.tar.gz |
-rw-r--r-- | gcl/Makefile.am | 33 | ||||
-rw-r--r-- | gcl/Makefile.in | 204 | ||||
-rwxr-xr-x | gcl/configure | 42 | ||||
-rw-r--r-- | gcl/configure.ac | 16 | ||||
-rw-r--r-- | gcl/h/gclincl.h.in | 3 | ||||
-rw-r--r-- | gcl/o/main.c | 6 | ||||
-rw-r--r-- | gcl/unixport/init_raw.lsp.in | 1 |
diff --git a/gcl/Makefile.am b/gcl/Makefile.am index d819410af..53d7d763b 100644 --- a/gcl/Makefile.am +++ b/gcl/Makefile.am @@ -23,7 +23,7 @@ gcltkdocdir=$(docdir)/gcl-tk # primaries -noinst_PROGRAMS=bin/dpp o/grab_defs +noinst_PROGRAMS=bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) noinst_LIBRARIES=lib/libbase_gcl.a my_unixport_PROGRAMS=unixport/saved_gcl unixport/saved_ansi_gcl @@ -31,7 +31,7 @@ my_unixport_LIBRARIES=unixport/libgcl.a unixport/libansi_gcl.a bin_SCRIPTS=bin/gcl check_SCRIPTS=sb_ansi-tests/test_results sb_bench/timing_results info_TEXINFOS=info/gcl.texi info/gcl-si.texi -my_unixport_DATA=$(addprefix unixport/,init_raw.lsp gcl.script libboot.so \ +my_unixport_DATA=$(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) my_h_DATA=h/cmpinclude.h my_cmpnew_DATA=sb_cmpnew/gcl_collectfn.o cmpnew/gcl_lfun_list.lsp cmpnew/gcl_cmpopt.lsp @@ -48,6 +48,12 @@ dist_noinst_DATA= # conditionals +if AMM_LIBBOOT +LIBBOOTSO=unixport/libboot.so +else +BOOT_C=o/boot.c +endif + if AMM_GPROF LIBGPROF=lib/libgprof.a @@ -165,7 +171,7 @@ endif BUILT_SOURCES=$(BUILT_H) $(BUILT_C) CLEANFILES=$(BUILT_SOURCES) $(INI_FILES) o/boot.ini -lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) +lib_libbase_gcl_a_SOURCES=$(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C) nodist_lib_libbase_gcl_a_SOURCES=$(BUILT_C) lib_libgprof_a_SOURCES=o/gprof.c lib_libgprof_a_CFLAGS=$(AM_CFLAGS) -fno-omit-frame-pointer -pg @@ -237,7 +243,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl gcl_gprof ansi_gcl_gprof):\ unixport/saved_%: unixport/raw_% # rebuild these only when out of date unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ - unixport/libboot.so unixport/init_raw.lsp + $(LIBBOOTSO) unixport/init_raw.lsp rm -rf sb_$* # FIXME sandbox ugliness for parallel builds mkdir sb_$* cd sb_$* && \ @@ -245,14 +251,17 @@ unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ mkdir h && \ ln -snf ../../h/cmpinclude.h h/ && \ - echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ + touch prof_init.lsp && \ + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue rm -rf sb_$* -unixport/raw_%: unixport/lib%.a - $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro +unixport/raw_%: unixport/lib%.a $(FF) $(LF) + $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp @@ -464,15 +473,15 @@ o/boot.h: %.h: %.ini cat $< >> $@ echo '}' >> $@ -CLEANFILES+=unixport/libboot.so -unixport/libboot.so: o/boot.c o/boot.h +CLEANFILES+=$(LIBBOOTSO) +$(LIBBOOTSO): o/boot.c o/boot.h $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H # parallel builds can only have one target accessing an intermediate file # solved with BUILT_SOURCES -o/%.ini: o/%.c | o/grab_defs +o/%.ini: o/%.c | o/grab_defs$(EXEEXT) @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ @rm -f new_$(@F) @@ -540,8 +549,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_collectfn.lsp | unixport/saved_gcl [ -d $(@D) ] || mkdir -p $(@D) $(word 1,$|) -compile $< -o $@ -%.c: %.d | bin/dpp - bin/dpp $< $@ +%.c: %.d | bin/dpp$(EXEEXT) + $| $< $@ gcl-tk/demos gcl-tk $(MY_DIRS): % : [ -d $@ ] || mkdir -p $@ diff --git a/gcl/Makefile.in b/gcl/Makefile.in index 3bd688ce2..41a7208ab 100644 --- a/gcl/Makefile.in +++ b/gcl/Makefile.in @@ -93,7 +93,6 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) my_unixport_PROGRAMS = unixport/saved_gcl$(EXEEXT) \ unixport/saved_ansi_gcl$(EXEEXT) $(am__EXEEXT_1) @AMM_GPROF_TRUE@am__append_1 = $(LIBGPROF) lib/libbase_gcl_gprof.a @@ -176,6 +175,56 @@ am__v_AR_1 = lib_libbase_gcl_a_AR = $(AR) $(ARFLAGS) lib_libbase_gcl_a_RANLIB = $(RANLIB) lib_libbase_gcl_a_LIBADD = +am__lib_libbase_gcl_a_SOURCES_DIST = o/typespec.c o/alloc.c o/gbc.c \ + o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ + o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ + o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ + o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ + o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ + o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ + o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ + o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ + o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ + o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ + o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ + o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ + h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ + h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ + h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ + h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ + h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ + h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ + h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ + o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ + h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ + h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ + h/cmponly_last.h h/elf32_armhf_reloc.h \ + h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ + h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ + h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ + h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ + h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ + h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ + h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ + h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \ + h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \ + h/elf64_loongarch64_reloc.h \ + h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \ + h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \ + h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \ + h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \ + h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \ + h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \ + h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \ + h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \ + h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \ + h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \ + h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \ + h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \ + h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \ + h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \ + h/solaris-i386.h o/boot.c am__dirstamp = $(am__leading_dot)dirstamp am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \ o/bitop.$(OBJEXT) o/main.$(OBJEXT) o/eval.$(OBJEXT) \ @@ -202,20 +251,71 @@ am__objects_1 = o/typespec.$(OBJEXT) o/alloc.$(OBJEXT) o/gbc.$(OBJEXT) \ o/bzero.$(OBJEXT) o/user_init.$(OBJEXT) o/user_match.$(OBJEXT) \ o/mapfun.$(OBJEXT) am__objects_2 = +@AMM_LIBBOOT_FALSE@am__objects_3 = o/boot.$(OBJEXT) am_lib_libbase_gcl_a_OBJECTS = $(am__objects_1) $(am__objects_2) \ - $(am__objects_2) $(am__objects_2) -am__objects_3 = o/character.$(OBJEXT) o/file.$(OBJEXT) \ + $(am__objects_2) $(am__objects_2) $(am__objects_3) +am__objects_4 = o/character.$(OBJEXT) o/file.$(OBJEXT) \ o/gcl_readline.$(OBJEXT) o/hash.$(OBJEXT) o/list.$(OBJEXT) \ o/package.$(OBJEXT) o/pathname.$(OBJEXT) o/print.$(OBJEXT) \ o/read.$(OBJEXT) o/sequence.$(OBJEXT) o/string.$(OBJEXT) \ o/symbol.$(OBJEXT) o/new_init.$(OBJEXT) -nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_3) +nodist_lib_libbase_gcl_a_OBJECTS = $(am__objects_4) lib_libbase_gcl_a_OBJECTS = $(am_lib_libbase_gcl_a_OBJECTS) \ $(nodist_lib_libbase_gcl_a_OBJECTS) lib_libbase_gcl_gprof_a_AR = $(AR) $(ARFLAGS) lib_libbase_gcl_gprof_a_RANLIB = $(RANLIB) lib_libbase_gcl_gprof_a_LIBADD = -am__objects_4 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ +am__lib_libbase_gcl_gprof_a_SOURCES_DIST = o/typespec.c o/alloc.c \ + o/gbc.c o/bitop.c o/main.c o/eval.c o/macros.c o/lex.c o/bds.c \ + o/frame.c o/predicate.c o/reference.c o/assignment.c o/bind.c \ + o/let.c o/conditional.c o/block.c o/iteration.c o/prog.c \ + o/multival.c o/catch.c o/cfun.c o/cmpaux.c o/big.c o/number.c \ + o/num_pred.c o/num_comp.c o/num_arith.c o/num_sfun.c \ + o/num_co.c o/num_log.c o/num_rand.c o/earith.c o/array.c \ + o/regexpr.c o/structure.c o/toplevel.c o/backq.c o/format.c \ + o/unixfsys.c o/unixfasl.c o/error.c o/unixtime.c o/unixsys.c \ + o/unixsave.c o/funlink.c o/fat_string.c o/run_process.c \ + o/nfunlink.c o/usig.c o/usig2.c o/utils.c o/makefun.c \ + o/sockets.c o/gmp_wrappers.c o/clxsocket.c o/nsocket.c \ + o/prelink.c o/sfasl.c o/msbrk.c o/bcmp.c o/bcopy.c o/bzero.c \ + o/user_init.c o/user_match.c o/mapfun.c h/compbas2.h \ + h/compbas.h h/compprotos.h h/cstack.h h/enum.h h/error.h \ + h/eval.h h/fixnum.h h/frame.h h/funlink.h h/globals.h \ + h/gmp_wrappers.h h/immnum.h h/include.h h/lex.h h/linux.h \ + h/lu.h h/make-init.h h/mp.h h/notcomp.h h/num_include.h \ + h/object.h h/options.h h/page.h h/pageinfo.h h/pbits.h \ + h/pool.h h/prelink.h h/protoize.h h/ptable.h h/rgbc.h \ + h/sfun_argd.h h/stacks.h h/type.h h/usig.h h/vs.h h/writable.h \ + o/regexp.h h/arth.h h/bsd.h h/bds.h h/att_ext.h h/bfdef.h \ + h/compat.h h/apply_n.h gcl-tk/sheader.h h/make-decl.h \ + h/defun.h o/ntheap.h h/compdefs.h h/cmpincl1.h h/mgmp.h \ + h/cmponly_last.h h/elf32_armhf_reloc.h \ + h/elf32_armhf_reloc_special.h h/elf32_arm_reloc.h \ + h/elf32_arm_reloc_special.h h/elf32_hppa_reloc.h \ + h/elf32_hppa_reloc_special.h h/elf32_i386_reloc.h \ + h/elf32_m68k_reloc.h h/elf32_mips_reloc.h \ + h/elf32_mips_reloc_special.h h/elf32_ppc_reloc.h \ + h/elf32_s390_reloc.h h/elf32_sh4_reloc.h h/elf32_sparc_reloc.h \ + h/elf64_aarch64_reloc.h h/elf64_aarch64_reloc_special.h \ + h/elf64_alpha_reloc.h h/elf64_alpha_reloc_special.h \ + h/elf64_i386_reloc.h h/elf64_i386_reloc_special.h \ + h/elf64_loongarch64_reloc.h \ + h/elf64_loongarch64_reloc_special.h h/elf64_mips_reloc.h \ + h/elf64_mips_reloc_special.h h/elf64_ppcle_reloc.h \ + h/elf64_ppcle_reloc_special.h h/elf64_ppc_reloc.h \ + h/elf64_ppc_reloc_special.h h/elf64_riscv64_reloc.h \ + h/elf64_s390_reloc.h h/elf64_sparc_reloc.h \ + h/elf64_sparc_reloc_special.h h/mach32_i386_reloc.h \ + h/mach32_ppc_reloc.h h/mach64_i386_reloc.h h/sh4-linux.h \ + h/amd64-linux.h h/amd64-kfreebsd.h h/386-linux.h \ + h/riscv64-linux.h h/386-kfreebsd.h h/amd64-gnu.h h/386-gnu.h \ + h/m68k-linux.h h/alpha-linux.h h/mips-linux.h h/mipsel-linux.h \ + h/sparc-linux.h h/aarch64-linux.h h/armhf-linux.h \ + h/arm-linux.h h/s390-linux.h h/ia64-linux.h h/hppa-linux.h \ + h/loongarch64-linux.h h/powerpc-linux.h h/powerpc-macosx.h \ + h/386-macosx.h h/mingw.h h/gnuwin95.h h/FreeBSD.h h/solaris.h \ + h/solaris-i386.h o/boot.c o/gprof.c +am__objects_5 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-alloc.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-gbc.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-bitop.$(OBJEXT) \ @@ -281,11 +381,13 @@ am__objects_4 = o/lib_libbase_gcl_gprof_a-typespec.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-user_init.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT) -am__objects_5 = $(am__objects_4) $(am__objects_2) $(am__objects_2) \ - $(am__objects_2) -am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_5) \ +@AMM_LIBBOOT_FALSE@am__objects_6 = \ +@AMM_LIBBOOT_FALSE@ o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT) +am__objects_7 = $(am__objects_5) $(am__objects_2) $(am__objects_2) \ + $(am__objects_2) $(am__objects_6) +am_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) \ o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT) -am__objects_6 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ +am__objects_8 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-file.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-gcl_readline.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-hash.$(OBJEXT) \ @@ -298,8 +400,8 @@ am__objects_6 = o/lib_libbase_gcl_gprof_a-character.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-string.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-symbol.$(OBJEXT) \ o/lib_libbase_gcl_gprof_a-new_init.$(OBJEXT) -am__objects_7 = $(am__objects_6) -nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_7) +am__objects_9 = $(am__objects_8) +nodist_lib_libbase_gcl_gprof_a_OBJECTS = $(am__objects_9) lib_libbase_gcl_gprof_a_OBJECTS = \ $(am_lib_libbase_gcl_gprof_a_OBJECTS) \ $(nodist_lib_libbase_gcl_gprof_a_OBJECTS) @@ -311,20 +413,20 @@ lib_libgprof_a_OBJECTS = $(am_lib_libgprof_a_OBJECTS) lib_libxgcl_a_AR = $(AR) $(ARFLAGS) lib_libxgcl_a_RANLIB = $(RANLIB) lib_libxgcl_a_LIBADD = -am__objects_8 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \ +am__objects_10 = xgcl-2/Events.$(OBJEXT) xgcl-2/general-c.$(OBJEXT) \ xgcl-2/XStruct-2.$(OBJEXT) xgcl-2/XStruct-4.$(OBJEXT) \ xgcl-2/Xutil-2.$(OBJEXT) -am_lib_libxgcl_a_OBJECTS = $(am__objects_8) +am_lib_libxgcl_a_OBJECTS = $(am__objects_10) lib_libxgcl_a_OBJECTS = $(am_lib_libxgcl_a_OBJECTS) lib_libxgcl_gprof_a_AR = $(AR) $(ARFLAGS) lib_libxgcl_gprof_a_RANLIB = $(RANLIB) lib_libxgcl_gprof_a_LIBADD = -am__objects_9 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \ +am__objects_11 = xgcl-2/lib_libxgcl_gprof_a-Events.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-general-c.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-XStruct-2.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-XStruct-4.$(OBJEXT) \ xgcl-2/lib_libxgcl_gprof_a-Xutil-2.$(OBJEXT) -am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_9) +am_lib_libxgcl_gprof_a_OBJECTS = $(am__objects_11) lib_libxgcl_gprof_a_OBJECTS = $(am_lib_libxgcl_gprof_a_OBJECTS) unixport_libansi_gcl_a_AR = $(AR) $(ARFLAGS) unixport_libansi_gcl_a_RANLIB = $(RANLIB) @@ -351,10 +453,10 @@ unixport_libgcl_gprof_a_OBJECTS = \ bin_dpp_SOURCES = bin/dpp.c bin_dpp_OBJECTS = bin/dpp.$(OBJEXT) bin_dpp_LDADD = $(LDADD) -am__objects_10 = gcl-tk/gcltkaux-guis.$(OBJEXT) \ +am__objects_12 = gcl-tk/gcltkaux-guis.$(OBJEXT) \ gcl-tk/gcltkaux-tkAppInit.$(OBJEXT) \ gcl-tk/gcltkaux-tkMain.$(OBJEXT) -am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_10) +am_gcl_tk_gcltkaux_OBJECTS = $(am__objects_12) gcl_tk_gcltkaux_OBJECTS = $(am_gcl_tk_gcltkaux_OBJECTS) am__DEPENDENCIES_1 = gcl_tk_gcltkaux_DEPENDENCIES = $(am__DEPENDENCIES_1) \ @@ -400,8 +502,8 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.Po \ o/$(DEPDIR)/array.Po o/$(DEPDIR)/assignment.Po \ o/$(DEPDIR)/backq.Po o/$(DEPDIR)/bcmp.Po o/$(DEPDIR)/bcopy.Po \ o/$(DEPDIR)/bds.Po o/$(DEPDIR)/big.Po o/$(DEPDIR)/bind.Po \ - o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/bzero.Po \ - o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ + o/$(DEPDIR)/bitop.Po o/$(DEPDIR)/block.Po o/$(DEPDIR)/boot.Po \ + o/$(DEPDIR)/bzero.Po o/$(DEPDIR)/catch.Po o/$(DEPDIR)/cfun.Po \ o/$(DEPDIR)/character.Po o/$(DEPDIR)/clxsocket.Po \ o/$(DEPDIR)/cmpaux.Po o/$(DEPDIR)/conditional.Po \ o/$(DEPDIR)/earith.Po o/$(DEPDIR)/error.Po o/$(DEPDIR)/eval.Po \ @@ -422,6 +524,7 @@ am__depfiles_remade = bin/$(DEPDIR)/dpp.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po \ + o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po \ o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po \ @@ -554,9 +657,10 @@ SOURCES = $(lib_libbase_gcl_a_SOURCES) \ $(unixport_saved_ansi_gcl_gprof_SOURCES) \ $(unixport_saved_gcl_SOURCES) \ $(unixport_saved_gcl_gprof_SOURCES) -DIST_SOURCES = $(lib_libbase_gcl_a_SOURCES) \ - $(lib_libbase_gcl_gprof_a_SOURCES) $(lib_libgprof_a_SOURCES) \ - $(lib_libxgcl_a_SOURCES) $(lib_libxgcl_gprof_a_SOURCES) \ +DIST_SOURCES = $(am__lib_libbase_gcl_a_SOURCES_DIST) \ + $(am__lib_libbase_gcl_gprof_a_SOURCES_DIST) \ + $(lib_libgprof_a_SOURCES) $(lib_libxgcl_a_SOURCES) \ + $(lib_libxgcl_gprof_a_SOURCES) \ $(unixport_libansi_gcl_a_SOURCES) \ $(unixport_libansi_gcl_gprof_a_SOURCES) \ $(unixport_libgcl_a_SOURCES) \ @@ -712,6 +816,7 @@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ EXT = @EXT@ EXTRA_LOBJS = @EXTRA_LOBJS@ +FF = @FF@ FINAL_CFLAGS = @FINAL_CFLAGS@ GCL_CC = @GCL_CC@ GMP = @GMP@ @@ -731,6 +836,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LEADING_UNDERSCORE = @LEADING_UNDERSCORE@ +LF = @LF@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LI_CC = @LI_CC@ @@ -854,6 +960,9 @@ my_cmpnewdir = $(my_libdir)/cmpnew my_clcsdir = $(my_libdir)/clcs xgcl2docdir = $(docdir)/xgcl-2 gcltkdocdir = $(docdir)/gcl-tk + +# primaries +noinst_PROGRAMS = bin/dpp$(EXEEXT) o/grab_defs$(EXEEXT) noinst_LIBRARIES = lib/libbase_gcl.a $(am__append_1) $(am__append_4) \ $(am__append_7) my_unixport_LIBRARIES = unixport/libgcl.a unixport/libansi_gcl.a \ @@ -862,7 +971,7 @@ bin_SCRIPTS = bin/gcl check_SCRIPTS = sb_ansi-tests/test_results sb_bench/timing_results info_TEXINFOS = info/gcl.texi info/gcl-si.texi $(am__append_6) \ $(am__append_9) -my_unixport_DATA = $(addprefix unixport/,init_raw.lsp gcl.script libboot.so \ +my_unixport_DATA = $(LIBBOOTSO) $(addprefix unixport/,init_raw.lsp gcl.script \ gcl_cmpnopt_gcl.lsp gcl_cmpnopt_ansi_gcl.lsp) my_h_DATA = h/cmpinclude.h @@ -879,6 +988,8 @@ lisp_DATA = elisp/add-default.el elisp/ansi-doc.el elisp/dbl.el elisp/doc-to-tex dist_noinst_DATA = $(am__append_5) $(am__append_8) # conditionals +@AMM_LIBBOOT_TRUE@LIBBOOTSO = unixport/libboot.so +@AMM_LIBBOOT_FALSE@BOOT_C = o/boot.c @AMM_GPROF_TRUE@LIBGPROF = lib/libgprof.a #it would be nice someday to sandbox xgcl-2 and gcl-tk builds in tmpdirs @@ -968,9 +1079,8 @@ BUILT_SOURCES = $(BUILT_H) $(BUILT_C) CLEANFILES = $(BUILT_SOURCES) $(INI_FILES) o/boot.ini $(addprefix \ unixport/raw_,gcl gcl_gprof ansi_gcl ansi_gcl_gprof) \ h/cmpinclude.h h/mstdint.h h/cmpincludea.h h/mcompdefs.h \ - unixport/libboot.so gcl-tk/demos/index.lsp \ - gcl-tk/demos/gc-monitor.o -lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) + $(LIBBOOTSO) gcl-tk/demos/index.lsp gcl-tk/demos/gc-monitor.o +lib_libbase_gcl_a_SOURCES = $(C_SRC) $(BASE_H) $(CMPI_H) $(ARCHT_H) $(BOOT_C) nodist_lib_libbase_gcl_a_SOURCES = $(BUILT_C) lib_libgprof_a_SOURCES = o/gprof.c lib_libgprof_a_CFLAGS = $(AM_CFLAGS) -fno-omit-frame-pointer -pg @@ -1293,6 +1403,7 @@ o/bzero.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/user_init.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/user_match.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/mapfun.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) +o/boot.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/character.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/file.$(OBJEXT): o/$(am__dirstamp) o/$(DEPDIR)/$(am__dirstamp) o/gcl_readline.$(OBJEXT): o/$(am__dirstamp) \ @@ -1447,6 +1558,8 @@ o/lib_libbase_gcl_gprof_a-user_match.$(OBJEXT): o/$(am__dirstamp) \ o/$(DEPDIR)/$(am__dirstamp) o/lib_libbase_gcl_gprof_a-mapfun.$(OBJEXT): o/$(am__dirstamp) \ o/$(DEPDIR)/$(am__dirstamp) +o/lib_libbase_gcl_gprof_a-boot.$(OBJEXT): o/$(am__dirstamp) \ + o/$(DEPDIR)/$(am__dirstamp) o/lib_libbase_gcl_gprof_a-gprof.$(OBJEXT): o/$(am__dirstamp) \ o/$(DEPDIR)/$(am__dirstamp) o/lib_libbase_gcl_gprof_a-character.$(OBJEXT): o/$(am__dirstamp) \ @@ -1654,6 +1767,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bitop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/block.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/boot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/bzero.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/catch.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/cfun.Po@am__quote@ # am--include-marker @@ -1688,6 +1802,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po@am__quote@ # am--include-marker @@ -2761,6 +2876,20 @@ o/lib_libbase_gcl_gprof_a-mapfun.obj: o/mapfun.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-mapfun.obj `if test -f 'o/mapfun.c'; then $(CYGPATH_W) 'o/mapfun.c'; else $(CYGPATH_W) '$(srcdir)/o/mapfun.c'; fi` +o/lib_libbase_gcl_gprof_a-boot.o: o/boot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.o `test -f 'o/boot.c' || echo '$(srcdir)/'`o/boot.c + +o/lib_libbase_gcl_gprof_a-boot.obj: o/boot.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-boot.obj -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='o/boot.c' object='o/lib_libbase_gcl_gprof_a-boot.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -c -o o/lib_libbase_gcl_gprof_a-boot.obj `if test -f 'o/boot.c'; then $(CYGPATH_W) 'o/boot.c'; else $(CYGPATH_W) '$(srcdir)/o/boot.c'; fi` + o/lib_libbase_gcl_gprof_a-gprof.o: o/gprof.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libbase_gcl_gprof_a_CPPFLAGS) $(CPPFLAGS) $(lib_libbase_gcl_gprof_a_CFLAGS) $(CFLAGS) -MT o/lib_libbase_gcl_gprof_a-gprof.o -MD -MP -MF o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo -c -o o/lib_libbase_gcl_gprof_a-gprof.o `test -f 'o/gprof.c' || echo '$(srcdir)/'`o/gprof.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Tpo o/$(DEPDIR)/lib_libbase_gcl_gprof_a-gprof.Po @@ -3974,6 +4103,7 @@ distclean: distclean-am -rm -f o/$(DEPDIR)/bind.Po -rm -f o/$(DEPDIR)/bitop.Po -rm -f o/$(DEPDIR)/block.Po + -rm -f o/$(DEPDIR)/boot.Po -rm -f o/$(DEPDIR)/bzero.Po -rm -f o/$(DEPDIR)/catch.Po -rm -f o/$(DEPDIR)/cfun.Po @@ -4008,6 +4138,7 @@ distclean: distclean-am -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po @@ -4294,6 +4425,7 @@ maintainer-clean: maintainer-clean-am -rm -f o/$(DEPDIR)/bind.Po -rm -f o/$(DEPDIR)/bitop.Po -rm -f o/$(DEPDIR)/block.Po + -rm -f o/$(DEPDIR)/boot.Po -rm -f o/$(DEPDIR)/bzero.Po -rm -f o/$(DEPDIR)/catch.Po -rm -f o/$(DEPDIR)/cfun.Po @@ -4328,6 +4460,7 @@ maintainer-clean: maintainer-clean-am -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bind.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bitop.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-block.Po + -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-boot.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-bzero.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-catch.Po -rm -f o/$(DEPDIR)/lib_libbase_gcl_gprof_a-cfun.Po @@ -4541,7 +4674,7 @@ $(addprefix unixport/saved_,gcl ansi_gcl gcl_gprof ansi_gcl_gprof):\ unixport/saved_%: unixport/raw_% # rebuild these only when out of date unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ - unixport/libboot.so unixport/init_raw.lsp + $(LIBBOOTSO) unixport/init_raw.lsp rm -rf sb_$* # FIXME sandbox ugliness for parallel builds mkdir sb_$* cd sb_$* && \ @@ -4549,14 +4682,17 @@ unixport/saved_%: | unixport/raw_% unixport/gcl_cmpnopt_%.lsp \ ln -snf gcl_cmpnopt_$*.lsp ../unixport/gcl_cmpnopt.lsp && \ mkdir h && \ ln -snf ../../h/cmpinclude.h h/ && \ - echo "(system:save-system \"../$@\")" | cat ../unixport/init_raw.lsp - | \ + touch prof_init.lsp && \ + ( ! echo $@ | grep -q _gprof$$ || echo "(setq compiler::*default-prof-p* t)" >prof_init.lsp ) && \ + echo "(system:save-system \"../$@\")" | \ + cat ../unixport/init_raw.lsp prof_init.lsp - | \ GCL_LSPSYSDIR=../$(srcdir)/unixport/ GCL_MEM_BOUND=29 \ ../unixport/raw_$* $$(dirname $$(pwd))/unixport/ -libdir $$(dirname $$(pwd))/ && \ rm -f ../unixport/gcl_cmpnopt.lsp #FIXME GCL_MEM_BOUND darwin limited raw heap xcode linker __huge issue rm -rf sb_$* -unixport/raw_%: unixport/lib%.a - $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $< $(LIBS) #FIXME relro +unixport/raw_%: unixport/lib%.a $(FF) $(LF) + $(CC) $(AM_LDFLAGS) -rdynamic $(LDFLAGS) -o $@ $(FF) $< $(LF) $(LIBS) #FIXME relro unixport/gcl_cmpnopt_gcl_gprof.lsp unixport/gcl_cmpnopt_ansi_gcl_gprof.lsp:\ unixport/gcl_cmpnopt_%_gprof.lsp: unixport/gcl_cmpnopt_%.lsp @@ -4754,14 +4890,14 @@ o/boot.h: %.h: %.ini echo 'void gcl_init_boot(void){' >> $@ cat $< >> $@ echo '}' >> $@ -unixport/libboot.so: o/boot.c o/boot.h +$(LIBBOOTSO): o/boot.c o/boot.h $(CC) $(AM_CPPFLAGS) -Io $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \ -fPIC -shared -Wl,-undefined -Wl,dynamic_lookup $< -o $@ o/boot.ini: CPPFLAGS += -DNO_BOOT_H # parallel builds can only have one target accessing an intermediate file # solved with BUILT_SOURCES -o/%.ini: o/%.c | o/grab_defs +o/%.ini: o/%.c | o/grab_defs$(EXEEXT) @$(CPP) $(AM_CPPFLAGS) -P -DINICOMP -DNO_DEFUN $(CPPFLAGS) $< | $| > new_$(@F) @([ -e $@ ] && cmp new_$(@F) $@) || mv -v new_$(@F) $@ @rm -f new_$(@F) @@ -4824,8 +4960,8 @@ sb_cmpnew/gcl_collectfn.o: cmpnew/gcl_collectfn.lsp | unixport/saved_gcl [ -d $(@D) ] || mkdir -p $(@D) $(word 1,$|) -compile $< -o $@ -%.c: %.d | bin/dpp - bin/dpp $< $@ +%.c: %.d | bin/dpp$(EXEEXT) + $| $< $@ gcl-tk/demos gcl-tk $(MY_DIRS): % : [ -d $@ ] || mkdir -p $@ diff --git a/gcl/configure b/gcl/configure index 9ec3ceb08..cf8b4c1ba 100755 --- a/gcl/configure +++ b/gcl/configure @@ -719,6 +719,10 @@ LDFLAGS CFLAGS CC PRELINK_CHECK +AMM_LIBBOOT_FALSE +AMM_LIBBOOT_TRUE +LF +FF host_os host_vendor host_cpu @@ -807,6 +811,7 @@ ac_user_opts=' enable_option_checking enable_silent_rules with_lispdir +enable_libboot enable_machine enable_widecons enable_safecdr @@ -1478,6 +1483,7 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") +put bootstrap code in shared library to be discarded --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs --enable-widecons will use a three word cons with simplified typing --enable-safecdr will protect cdr from immfix and speed up type processing @@ -4149,6 +4155,38 @@ case $canonical in i?86-pc-solaris*) use=solaris-i386;; esac +# Check whether --enable-libboot was given. +if test ${enable_libboot+y} +then : + enableval=$enable_libboot; libboot=$enableval +else case e in #( + e) libboot="yes" ;; +esac +fi + + +if test "$use" = "gnuwin95" ; then + FF=o/firstfile.o + + LF=o/lastfile.o + + libboot="no" +fi + + if test "$libboot" = "yes"; then + AMM_LIBBOOT_TRUE= + AMM_LIBBOOT_FALSE='#' +else + AMM_LIBBOOT_TRUE='#' + AMM_LIBBOOT_FALSE= +fi + +if test "$libboot" = "yes" ; then + +printf "%s\n" "#define USE_LIBBOOT 1" >>confdefs.h + +fi + # Check whether --enable-machine was given. if test ${enable_machine+y} then : @@ -11884,6 +11922,10 @@ else am__EXEEXT_FALSE= fi +if test -z "${AMM_LIBBOOT_TRUE}" && test -z "${AMM_LIBBOOT_FALSE}"; then + as_fn_error $? "conditional \"AMM_LIBBOOT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/gcl/configure.ac b/gcl/configure.ac index ac7d1ae08..cb02d9931 100644 --- a/gcl/configure.ac +++ b/gcl/configure.ac @@ -71,6 +71,22 @@ case $canonical in i?86-pc-solaris*) use=solaris-i386;; esac +AC_ARG_ENABLE([libboot],[put bootstrap code in shared library to be discarded], + [libboot=$enableval],[libboot="yes"]) + +if test "$use" = "gnuwin95" ; then + FF=o/firstfile.o + AC_SUBST(FF) + LF=o/lastfile.o + AC_SUBST(LF) + libboot="no" +fi + +AM_CONDITIONAL([AMM_LIBBOOT],[test "$libboot" = "yes"]) +if test "$libboot" = "yes" ; then + AC_DEFINE([USE_LIBBOOT],[1],[boot code in shared library]) +fi + AC_ARG_ENABLE([machine],[ --enable-machine=XXXX will force the use of one of the definitions in h/XXXX.defs], [echo enable_machine=$enableval ; use=$enableval]) diff --git a/gcl/h/gclincl.h.in b/gcl/h/gclincl.h.in index 5b3b7e3c2..069435b85 100644 --- a/gcl/h/gclincl.h.in +++ b/gcl/h/gclincl.h.in @@ -335,6 +335,9 @@ /* use gprof */ #undef USE_GPROF +/* boot code in shared library */ +#undef USE_LIBBOOT + /* use readline library */ #undef USE_READLINE diff --git a/gcl/o/main.c b/gcl/o/main.c index 7728f61c9..79fd138a3 100644 --- a/gcl/o/main.c +++ b/gcl/o/main.c @@ -582,7 +582,7 @@ void init_boot(void) { char *sysd=getenv("GCL_SYSDIR"),*d=sysd ? sysd : kcl_self; -#ifndef __CYGWIN__ +#ifdef USE_LIBBOOT void *v,*q; #endif char *z,*s="libboot.so"; @@ -592,14 +592,14 @@ init_boot(void) { sSAoptimize_maximum_pagesA->s.s_dbind=Cnil; z=alloca(n); snprintf(z,n,"%-*.*s%s",(int)m,(int)m,d,s); -#ifndef __CYGWIN__ +#ifdef USE_LIBBOOT if (!(v=dlopen(z,RTLD_LAZY|RTLD_GLOBAL))) printf("%s\n",dlerror()); if (!(q=dlsym(v,"gcl_init_boot"))) printf("%s\n",dlerror()); #endif initializing_boot=1; -#ifdef __CYGWIN__ +#ifndef USE_LIBBOOT { extern void gcl_init_boot(void); gcl_init_boot(); diff --git a/gcl/unixport/init_raw.lsp.in b/gcl/unixport/init_raw.lsp.in index a4471dc07..edecc5f64 100644 --- a/gcl/unixport/init_raw.lsp.in +++ b/gcl/unixport/init_raw.lsp.in @@ -90,7 +90,6 @@ (in-package :compiler) (setq *cc* @LI_CC@ - *default-prof-p* (> (length @LI_DFP@) 0) *ld* @LI_LD@ *ld-libs* @LI_LD_LIBS@ *ld-libs* (concatenate 'string "-l" #+ansi-cl "ansi_" "gcl" #+gprof "_gprof" " " *ld-libs*) |