summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EMX_MAKEFILE113
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.direct64
3 files changed, 38 insertions, 141 deletions
diff --git a/EMX_MAKEFILE b/EMX_MAKEFILE
deleted file mode 100644
index c361434f..00000000
--- 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 379e6784..df928bb2 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 43d08d3a..93fd1a71 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