From 02b8b80e516c27bd2a5cd8d3fde79791d3b1fb28 Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Thu, 23 Mar 2017 01:41:25 +0300 Subject: [PATCH] Remove EMX_MAKEFILE (add EMX support to Makefile.direct) * EMX_MAKEFILE: Remove. * Makefile.am (EXTRA_DIST): Remove EMX_MAKEFILE entity. * Makefile.direct (OTHER_MAKEFILES): Likewise. * Makefile.direct (CC, RANLIB): Add comment for EMX target. * Makefile.direct (EXEEXT): New variable (empty by default). * Makefile.direct (UTILS, all, cords, test_cpp, check-cpp, c++-t, dyn_test, cord/cordtest, cord/de, if_mach, threadlibs, if_not_there, gctest, setjmp_test, check): Add $(EXEEXT) suffix to if_mach, if_not_there, threadlibs, gctest, cord/cordtest, test_cpp, cord/de, setjmp_test. --- EMX_MAKEFILE | 113 -------------------------------------------------------- Makefile.am | 2 +- Makefile.direct | 64 ++++++++++++++++++-------------- 3 files changed, 38 insertions(+), 141 deletions(-) delete mode 100644 EMX_MAKEFILE diff --git a/EMX_MAKEFILE b/EMX_MAKEFILE deleted file mode 100644 index c361434..0000000 --- a/EMX_MAKEFILE +++ /dev/null @@ -1,113 +0,0 @@ -# -# OS/2 specific Makefile for the EMX environment -# -# You need GNU Make 3.71, gcc 2.5.7, emx 0.8h and GNU fileutils 3.9 -# or similar tools. C++ interface and de.exe weren't tested. -# - -# Primary targets: -# gc.a - builds basic library -# c++ - adds C++ interface to library and include directory -# cords - adds cords (heavyweight strings) to library and include directory -# test - prints porting information, then builds basic version of gc.a, and runs -# some tests of collector and cords. Does not add cords or c++ interface to gc.a -# cord/de.exe - builds dumb editor based on cords. -CC= gcc -CXX=g++ -# Needed only for "make c++", which adds the c++ interface - -CFLAGS= -O -DALL_INTERIOR_POINTERS -I$(srcdir)/include -# Setjmp_test may yield overly optimistic results when compiled -# without optimization. - -CXXFLAGS= $(CFLAGS) -AR= ar -RANLIB= ar s - -# Redefining srcdir allows object code for the nonPCR version of the collector -# to be generated in different directories -srcdir = . -VPATH = $(srcdir) - -OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o headers.o mark.o obj_map.o blacklst.o finalize.o new_hblk.o dyn_load.o dbg_mlc.o fnlz_mlc.o malloc.o stubborn.o checksums.o typd_mlc.o ptr_chck.o mallocx.o - -CORD_OBJS= cord/cordbscs.o cord/cordxtra.o cord/cordprnt.o - -CORD_INCLUDE_FILES= $(srcdir)/include/gc.h $(srcdir)/include/cord.h \ - $(srcdir)/include/ec.h $(srcdir)/include/cord_pos.h - -# Libraries needed for curses applications. Only needed for de. -CURSES= -lcurses -ltermlib - -SPECIALCFLAGS = -I$(srcdir)/include -# Alternative flags to the C compiler for mach_dep.c. -# Mach_dep.c often doesn't like optimization, and it's -# not time-critical anyway. - -all: gc.a gctest.exe - -$(OBJS) test.o: $(srcdir)/include/private/gc_priv.h \ - $(srcdir)/include/private/gc_hdrs.h $(srcdir)/include/gc.h \ - $(srcdir)/include/private/gcconfig.h $(srcdir)/include/gc_typed.h -# The dependency on Makefile is needed. Changing -# options affects the size of GC_arrays, -# invalidating all .o files that rely on gc_priv.h - -mark.o typd_mlc.o finalize.o: $(srcdir)/include/gc_mark.h $(srcdir)/include/private/gc_pmark.h - -gc.a: $(OBJS) - $(AR) ru gc.a $(OBJS) - $(RANLIB) gc.a - -cords: $(CORD_OBJS) cord/cordtest.exe - $(AR) ru gc.a $(CORD_OBJS) - $(RANLIB) gc.a - -gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/include/gc_cpp.h - $(CXX) -c $(CXXFLAGS) $(srcdir)/gc_cpp.cc - -c++: gc_cpp.o $(srcdir)/include/gc_cpp.h - $(AR) ru gc.a gc_cpp.o - $(RANLIB) gc.a - -mach_dep.o: $(srcdir)/mach_dep.c - $(CC) -o mach_dep.o -c $(SPECIALCFLAGS) $(srcdir)/mach_dep.c - -mark_rts.o: $(srcdir)/mark_rts.c - $(CC) -o mark_rts.o -c $(CFLAGS) $(srcdir)/mark_rts.c - -cord/cordbscs.o: $(srcdir)/cord/cordbscs.c $(CORD_INCLUDE_FILES) - $(CC) $(CFLAGS) -c $(srcdir)/cord/cordbscs.c -o cord/cordbscs.o - -cord/cordxtra.o: $(srcdir)/cord/cordxtra.c $(CORD_INCLUDE_FILES) - $(CC) $(CFLAGS) -c $(srcdir)/cord/cordxtra.c -o cord/cordxtra.o - -cord/cordprnt.o: $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES) - $(CC) $(CFLAGS) -c $(srcdir)/cord/cordprnt.c -o cord/cordprnt.o - -cord/cordtest.exe: $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a - $(CC) $(CFLAGS) -o cord/cordtest.exe $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a - -cord/de.exe: $(srcdir)/cord/tests/de.c $(srcdir)/cord/cordbscs.o $(srcdir)/cord/cordxtra.o gc.a - $(CC) $(CFLAGS) -o cord/de.exe $(srcdir)/cord/tests/de.c $(srcdir)/cord/cordbscs.o $(srcdir)/cord/cordxtra.o gc.a $(CURSES) - -clean: - rm -f gc.a tests/test.o gctest.exe output-local output-diff $(OBJS) \ - setjmp_test mon.out gmon.out a.out core \ - $(CORD_OBJS) cord/cordtest.exe cord/de.exe - -rm -f *~ - -gctest.exe: tests/test.o gc.a - $(CC) $(CFLAGS) -o gctest.exe tests/test.o gc.a - -# If an optimized setjmp_test generates a segmentation fault, -# odds are your compiler is broken. Gctest may still work. -# Try compiling setjmp_t.c unoptimized. -setjmp_test.exe: $(srcdir)/tools/setjmp_t.c $(srcdir)/include/gc.h - $(CC) $(CFLAGS) -o setjmp_test.exe $(srcdir)/tools/setjmp_t.c - -test: setjmp_test.exe gctest.exe - ./setjmp_test - ./gctest - make cord/cordtest.exe - cord/cordtest diff --git a/Makefile.am b/Makefile.am index 379e678..df928bb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -180,7 +180,7 @@ EXTRA_DIST += README.QUICK # other makefiles # :GOTCHA: deliberately we do not include 'Makefile' EXTRA_DIST += BCC_MAKEFILE NT_MAKEFILE \ - OS2_MAKEFILE PCR-Makefile digimars.mak EMX_MAKEFILE \ + OS2_MAKEFILE PCR-Makefile digimars.mak \ Makefile.direct SMakefile.amiga WCC_MAKEFILE autogen.sh \ NT_STATIC_THREADS_MAKEFILE NT_X64_STATIC_THREADS_MAKEFILE \ NT_X64_THREADS_MAKEFILE CMakeLists.txt tests/CMakeLists.txt diff --git a/Makefile.direct b/Makefile.direct index 43d08d3..93fd1a7 100644 --- a/Makefile.direct +++ b/Makefile.direct @@ -22,6 +22,7 @@ AS_ABI_FLAG=$(ABI_FLAG) # executables. CC=cc $(ABI_FLAG) +# Compiler executable name. For EMX, replace to "gcc". CXX=g++ $(ABI_FLAG) # Needed only for "make c++", which adds the c++ interface. @@ -76,7 +77,9 @@ HOSTCFLAGS=$(CFLAGS) CXXFLAGS= $(CFLAGS) AR= ar + RANLIB= ranlib +# For EMX, replace "ranlib" with "ar s". OBJS= alloc.o reclaim.o allchblk.o misc.o mach_dep.o os_dep.o mark_rts.o \ @@ -143,7 +146,7 @@ GNU_BUILD_FILES= configure.ac Makefile.am configure install-sh Makefile.in \ bdw-gc.pc.in compile OTHER_MAKEFILES= OS2_MAKEFILE NT_MAKEFILE gc.mak \ - BCC_MAKEFILE EMX_MAKEFILE WCC_MAKEFILE PCR-Makefile SMakefile.amiga \ + BCC_MAKEFILE WCC_MAKEFILE PCR-Makefile SMakefile.amiga \ digimars.mak Makefile.direct NT_STATIC_THREADS_MAKEFILE \ NT_X64_STATIC_THREADS_MAKEFILE NT_X64_THREADS_MAKEFILE @@ -159,7 +162,10 @@ OTHER_FILES= tools/setjmp_t.c tools/callprocs.sh extra/MacOS.c \ CORD_INCLUDE_FILES= $(srcdir)/include/gc.h $(srcdir)/include/cord.h \ $(srcdir)/include/ec.h $(srcdir)/include/cord_pos.h -UTILS= if_mach if_not_there threadlibs +# Executable file name extension. For EMX, specify ".exe". +EXEEXT= + +UTILS= if_mach$(EXEEXT) if_not_there$(EXEEXT) threadlibs$(EXEEXT) # Libraries needed for curses applications. Only needed for de. # It might also require -ltermlib on some targets. @@ -176,7 +182,7 @@ SPECIALCFLAGS= -I$(srcdir)/include -I$(AO_SRC_DIR)/src # not time-critical anyway. # Set SPECIALCFLAGS to -q nodirect_code on Encore. -all: base_lib gctest +all: base_lib gctest$(EXEEXT) atomic_ops.o: $(AO_SRC_DIR)/src/atomic_ops.c $(CC) $(CFLAGS) -c -o $@ $< @@ -243,7 +249,7 @@ base_lib gc.a: $(OBJS) dyn_load.o $(UTILS) # Ignore ranlib failure; that usually means it doesn't exist, and # isn't needed. -cords: $(CORD_OBJS) cord/cordtest $(UTILS) base_lib +cords: $(CORD_OBJS) cord/cordtest$(EXEEXT) $(UTILS) base_lib rm -f dont_ar_3 ./if_mach SPARC SOLARIS touch dont_ar_3 ./if_mach SPARC SOLARIS $(AR) rus gc.a $(CORD_OBJS) @@ -255,16 +261,16 @@ cords: $(CORD_OBJS) cord/cordtest $(UTILS) base_lib gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/include/gc_cpp.h $(srcdir)/include/gc.h $(CXX) -c $(CXXFLAGS) $(srcdir)/gc_cpp.cc -test_cpp: $(srcdir)/tests/test_cpp.cc $(srcdir)/include/gc_cpp.h $(srcdir)/include/gc.h \ - gc_cpp.o base_lib $(UTILS) - rm -f test_cpp +test_cpp$(EXEEXT): $(srcdir)/tests/test_cpp.cc $(srcdir)/include/gc_cpp.h \ + $(srcdir)/include/gc.h gc_cpp.o base_lib $(UTILS) + rm -f test_cpp$(EXEEXT) ./if_mach HP_PA HPUX $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/tests/test_cpp.cc gc_cpp.o gc.a -ldld `./threadlibs` - ./if_not_there test_cpp $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/tests/test_cpp.cc gc_cpp.o gc.a `./threadlibs` + ./if_not_there test_cpp$(EXEEXT) $(CXX) $(CXXFLAGS) -o test_cpp$(EXEEXT) $(srcdir)/tests/test_cpp.cc gc_cpp.o gc.a `./threadlibs` -check-cpp: test_cpp +check-cpp: test_cpp$(EXEEXT) ./test_cpp -c++-t: c++ test_cpp +c++-t: c++ test_cpp$(EXEEXT) ./test_cpp 1 c++-nt: c++ @@ -305,7 +311,7 @@ liblinuxgc.so: $(OBJS) dyn_load.o # Build gctest with dynamic library dyn_test: - $(CC) $(CFLAGS) -o gctest tests/test.c libgc.so `./threadlibs` + $(CC) $(CFLAGS) -o gctest$(EXEEXT) tests/test.c libgc.so `./threadlibs` ./gctest # Alternative Linux rule. This is preferable, but is likely to break the @@ -365,12 +371,13 @@ cord/cordprnt.o: cord $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES) $(CC) $(CFLAGS) -c -I$(srcdir) $(srcdir)/cord/cordprnt.c mv cordprnt.o cord/cordprnt.o -cord/cordtest: $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) base_lib $(UTILS) - rm -f cord/cordtest +cord/cordtest$(EXEEXT): $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) \ + base_lib $(UTILS) + rm -f cord/cordtest$(EXEEXT) ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a -lucb ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a -ldld `./threadlibs` ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a `./threadlibs` - ./if_not_there cord/cordtest $(CC) $(CFLAGS) -o cord/cordtest $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a `./threadlibs` + ./if_not_there cord/cordtest$(EXEEXT) $(CC) $(CFLAGS) -o cord/cordtest$(EXEEXT) $(srcdir)/cord/tests/cordtest.c $(CORD_OBJS) gc.a `./threadlibs` cord/de: $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o base_lib \ $(UTILS) @@ -383,16 +390,18 @@ cord/de: $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o base_lib \ ./if_mach ALPHA LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs` ./if_mach IA64 LINUX $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses `./threadlibs` ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a -lcurses - ./if_not_there cord/de $(CC) $(CFLAGS) -o cord/de $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) `./threadlibs` + ./if_not_there cord/de$(EXEEXT) $(CC) $(CFLAGS) -o cord/de$(EXEEXT) $(srcdir)/cord/tests/de.c cord/cordbscs.o cord/cordxtra.o gc.a $(CURSES) `./threadlibs` -if_mach: $(srcdir)/tools/if_mach.c $(srcdir)/include/private/gcconfig.h - $(HOSTCC) $(HOSTCFLAGS) -o if_mach $(srcdir)/tools/if_mach.c +if_mach$(EXEEXT): $(srcdir)/tools/if_mach.c \ + $(srcdir)/include/private/gcconfig.h + $(HOSTCC) $(HOSTCFLAGS) -o if_mach$(EXEEXT) $(srcdir)/tools/if_mach.c -threadlibs: $(srcdir)/tools/threadlibs.c $(srcdir)/include/private/gcconfig.h - $(HOSTCC) $(HOSTCFLAGS) -o threadlibs $(srcdir)/tools/threadlibs.c +threadlibs$(EXEEXT): $(srcdir)/tools/threadlibs.c \ + $(srcdir)/include/private/gcconfig.h + $(HOSTCC) $(HOSTCFLAGS) -o threadlibs$(EXEEXT) $(srcdir)/tools/threadlibs.c -if_not_there: $(srcdir)/tools/if_not_there.c - $(HOSTCC) $(HOSTCFLAGS) -o if_not_there $(srcdir)/tools/if_not_there.c +if_not_there$(EXEEXT): $(srcdir)/tools/if_not_there.c + $(HOSTCC) $(HOSTCFLAGS) -o if_not_there$(EXEEXT) $(srcdir)/tools/if_not_there.c clean: rm -f gc.a *.i *.o *.exe tests/*.o gctest gctest_dyn_link test_cpp \ @@ -400,20 +409,21 @@ clean: base_lib c++ threadlibs $(CORD_OBJS) cord/cordtest cord/de -rm -f *~ -gctest: tests/test.o base_lib $(UTILS) - rm -f gctest +gctest$(EXEEXT): tests/test.o base_lib $(UTILS) + rm -f gctest$(EXEEXT) ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o gctest tests/test.o gc.a -lucb ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o gctest tests/test.o gc.a -ldld `./threadlibs` ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o gctest tests/test.o gc.a `./threadlibs` - ./if_not_there gctest $(CC) $(CFLAGS) -o gctest tests/test.o gc.a `./threadlibs` + ./if_not_there gctest$(EXEEXT) $(CC) $(CFLAGS) -o gctest$(EXEEXT) tests/test.o gc.a `./threadlibs` # If an optimized setjmp_test generates a segmentation fault, # odds are your compiler is broken. Gctest may still work. # Try compiling setjmp_t.c unoptimized. -setjmp_test: $(srcdir)/tools/setjmp_t.c $(srcdir)/include/gc.h $(UTILS) - $(CC) $(CFLAGS) -o setjmp_test $(srcdir)/tools/setjmp_t.c +setjmp_test$(EXEEXT): $(srcdir)/tools/setjmp_t.c $(srcdir)/include/gc.h \ + $(UTILS) + $(CC) $(CFLAGS) -o setjmp_test$(EXEEXT) $(srcdir)/tools/setjmp_t.c -check: cord/cordtest gctest setjmp_test +check: cord/cordtest$(EXEEXT) gctest$(EXEEXT) setjmp_test$(EXEEXT) ./setjmp_test ./gctest cord/cordtest -- 2.7.4