diff options
-rw-r--r-- | Makefile.direct | 88 | ||||
-rw-r--r-- | README.QUICK | 13 | ||||
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | doc/gcinterface.md | 2 |
4 files changed, 53 insertions, 54 deletions
diff --git a/Makefile.direct b/Makefile.direct index 38c849c9..08cf377a 100644 --- a/Makefile.direct +++ b/Makefile.direct @@ -2,14 +2,14 @@ # to build the collector. # # Primary targets: -# all - builds gc.a, gccpp.a, gctba.a and cord.a -# base_lib - builds gc.a only (basic library) -# c++ - builds gccpp.a and gctba.a only (C++ interface to library) -# cords - builds cord.a only (heavyweight strings library) +# all - builds libgc.a, libgccpp.a, libgctba.a and libcord.a +# base_lib - builds libgc.a only (basic library) +# c++ - builds libgccpp.a and libgctba.a only (C++ interface to library) +# cords - builds libcord.a only (heavyweight strings library) # check - same as "all" but also prints porting information, and runs some # tests of collector and cords # check-deps - same as check but do not run the tests -# check-cpp - builds gc.a, gccpp.a and gctba.a, runs C++ only test +# check-cpp - builds libgc.a, libgccpp.a and libgctba.a, runs C++ only test # check-cpp-deps - same as check-cpp but do not run the test # cord/de - builds dumb editor based on cords. @@ -160,13 +160,13 @@ BSD-pkg-all: bsd-libgc.a bsd-libleak.a bsd-libgc.a bsd-libgccpp.a bsd-libgctba.a: $(MAKE) -f Makefile.direct CFLAGS="$(CFLAGS)" clean c++-t - mv gc.a bsd-libgc.a - mv gccpp.a bsd-libgccpp.a - mv gctba.a bsd-libgctba.a + mv libgc.a bsd-libgc.a + mv libgccpp.a bsd-libgccpp.a + mv libgctba.a bsd-libgctba.a bsd-libleak.a: $(MAKE) -f Makefile.direct CFLAGS="$(LEAKFLAGS)" clean c++-nt - mv gc.a bsd-libleak.a + mv libgc.a bsd-libleak.a BSD-pkg-install: BSD-pkg-all ${CP} bsd-libgc.a libgc.a @@ -205,26 +205,26 @@ tests/test.o: $(srcdir)/tests/test.c $(CC) $(CFLAGS) -c $(srcdir)/tests/test.c mv test.o tests/test.o -base_lib gc.a: $(OBJS) dyn_load.o $(UTILS) +base_lib libgc.a: $(OBJS) dyn_load.o $(UTILS) rm -f dont_ar_1 ./if_mach SPARC SOLARIS touch dont_ar_1 - ./if_mach SPARC SOLARIS $(AR) rus gc.a $(OBJS) dyn_load.o + ./if_mach SPARC SOLARIS $(AR) rus libgc.a $(OBJS) dyn_load.o ./if_mach M68K AMIGA touch dont_ar_1 - ./if_mach M68K AMIGA $(AR) -vrus gc.a $(OBJS) dyn_load.o - ./if_not_there dont_ar_1 || $(AR) ru gc.a $(OBJS) dyn_load.o - ./if_not_there dont_ar_1 || $(RANLIB) gc.a || cat /dev/null + ./if_mach M68K AMIGA $(AR) -vrus libgc.a $(OBJS) dyn_load.o + ./if_not_there dont_ar_1 || $(AR) ru libgc.a $(OBJS) dyn_load.o + ./if_not_there dont_ar_1 || $(RANLIB) libgc.a || cat /dev/null echo > base_lib # Ignore ranlib failure; that usually means it doesn't exist, and # isn't needed. -cords cord.a: $(CORD_OBJS) $(UTILS) +cords libcord.a: $(CORD_OBJS) $(UTILS) rm -f dont_ar_3 ./if_mach SPARC SOLARIS touch dont_ar_3 - ./if_mach SPARC SOLARIS $(AR) rus cord.a $(CORD_OBJS) + ./if_mach SPARC SOLARIS $(AR) rus libcord.a $(CORD_OBJS) ./if_mach M68K AMIGA touch dont_ar_3 - ./if_mach M68K AMIGA $(AR) -vrus cord.a $(CORD_OBJS) - ./if_not_there dont_ar_3 || $(AR) ru cord.a $(CORD_OBJS) - ./if_not_there dont_ar_3 || $(RANLIB) cord.a || cat /dev/null + ./if_mach M68K AMIGA $(AR) -vrus libcord.a $(CORD_OBJS) + ./if_not_there dont_ar_3 || $(AR) ru libcord.a $(CORD_OBJS) + ./if_not_there dont_ar_3 || $(RANLIB) libcord.a || cat /dev/null echo > cords gc_badalc.o: $(srcdir)/gc_badalc.cc $(srcdir)/include/gc_cpp.h \ @@ -237,8 +237,8 @@ gc_cpp.o: $(srcdir)/gc_cpp.cc $(srcdir)/include/gc_cpp.h $(srcdir)/include/gc.h test_cpp$(EXEEXT): $(srcdir)/tests/test_cpp.cc $(srcdir)/include/gc_cpp.h \ $(srcdir)/include/gc.h c++ base_lib $(UTILS) rm -f test_cpp$(EXEEXT) - ./if_mach HP_PA HPUX $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/tests/test_cpp.cc gc.a gccpp.a -ldld `./threadlibs` - ./if_not_there test_cpp$(EXEEXT) || $(CXX) $(CXXFLAGS) -DGC_NOT_DLL -o test_cpp$(EXEEXT) $(srcdir)/tests/test_cpp.cc gc.a gccpp.a `./threadlibs` + ./if_mach HP_PA HPUX $(CXX) $(CXXFLAGS) -o test_cpp $(srcdir)/tests/test_cpp.cc libgc.a libgccpp.a -ldld `./threadlibs` + ./if_not_there test_cpp$(EXEEXT) || $(CXX) $(CXXFLAGS) -DGC_NOT_DLL -o test_cpp$(EXEEXT) $(srcdir)/tests/test_cpp.cc libgc.a libgccpp.a `./threadlibs` check-cpp-deps: test_cpp$(EXEEXT) @@ -251,18 +251,18 @@ c++-t: c++ test_cpp$(EXEEXT) c++-nt: c++ @echo "Use ./test_cpp 1 to test the leak library" -c++ gccpp.a gctba.a: gc_badalc.o gc_cpp.o $(UTILS) +c++ libgccpp.a libgctba.a: gc_badalc.o gc_cpp.o $(UTILS) rm -f dont_ar_4 ./if_mach SPARC SOLARIS touch dont_ar_4 - ./if_mach SPARC SOLARIS $(AR) rus gccpp.a gc_badalc.o gc_cpp.o - ./if_mach SPARC SOLARIS $(AR) rus gctba.a gc_badalc.o + ./if_mach SPARC SOLARIS $(AR) rus libgccpp.a gc_badalc.o gc_cpp.o + ./if_mach SPARC SOLARIS $(AR) rus libgctba.a gc_badalc.o ./if_mach M68K AMIGA touch dont_ar_4 - ./if_mach M68K AMIGA $(AR) -vrus gccpp.a gc_badalc.o gc_cpp.o - ./if_mach M68K AMIGA $(AR) -vrus gctba.a gc_badalc.o - ./if_not_there dont_ar_4 || $(AR) ru gccpp.a gc_badalc.o gc_cpp.o - ./if_not_there dont_ar_4 || $(RANLIB) gccpp.a || cat /dev/null - ./if_not_there dont_ar_4 || $(AR) ru gctba.a gc_badalc.o - ./if_not_there dont_ar_4 || $(RANLIB) gctba.a || cat /dev/null + ./if_mach M68K AMIGA $(AR) -vrus libgccpp.a gc_badalc.o gc_cpp.o + ./if_mach M68K AMIGA $(AR) -vrus libgctba.a gc_badalc.o + ./if_not_there dont_ar_4 || $(AR) ru libgccpp.a gc_badalc.o gc_cpp.o + ./if_not_there dont_ar_4 || $(RANLIB) libgccpp.a || cat /dev/null + ./if_not_there dont_ar_4 || $(AR) ru libgctba.a gc_badalc.o + ./if_not_there dont_ar_4 || $(RANLIB) libgctba.a || cat /dev/null echo > c++ dyn_load_sunos53.o: dyn_load.c @@ -351,22 +351,22 @@ cord/cordprnt.o: $(srcdir)/cord/cordprnt.c $(CORD_INCLUDE_FILES) cordtest$(EXEEXT): $(srcdir)/cord/tests/cordtest.c cords base_lib $(UTILS) rm -f cordtest$(EXEEXT) - ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cordtest $(srcdir)/cord/tests/cordtest.c gc.a cord.a -lucb - ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cordtest $(srcdir)/cord/tests/cordtest.c gc.a cord.a -ldld `./threadlibs` - ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o cordtest $(srcdir)/cord/tests/cordtest.c gc.a cord.a `./threadlibs` - ./if_not_there cordtest$(EXEEXT) || $(CC) $(CFLAGS) -o cordtest$(EXEEXT) $(srcdir)/cord/tests/cordtest.c gc.a cord.a `./threadlibs` + ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o cordtest $(srcdir)/cord/tests/cordtest.c libgc.a libcord.a -lucb + ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o cordtest $(srcdir)/cord/tests/cordtest.c libgc.a libcord.a -ldld `./threadlibs` + ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o cordtest $(srcdir)/cord/tests/cordtest.c libgc.a libcord.a `./threadlibs` + ./if_not_there cordtest$(EXEEXT) || $(CC) $(CFLAGS) -o cordtest$(EXEEXT) $(srcdir)/cord/tests/cordtest.c libgc.a libcord.a `./threadlibs` cord/de: de$(EXEEXT) de$(EXEEXT): $(srcdir)/cord/tests/de.c $(srcdir)/cord/tests/de_win.c \ $(srcdir)/cord/tests/de_win.h cords base_lib $(UTILS) rm -f de$(EXEEXT) - ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c gc.a cord.a -lcurses -ltermlib -lucb `./threadlibs` - ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c gc.a cord.a -lcurses -ltermlib -ldld `./threadlibs` - ./if_mach POWERPC AIX $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c gc.a cord.a -lcurses - ./if_mach POWERPC DARWIN $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c gc.a cord.a - ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o de $(srcdir)/cord/tests/de.c gc.a cord.a -lcurses - ./if_not_there de$(EXEEXT) || $(CC) $(CFLAGS) -o de$(EXEEXT) $(srcdir)/cord/tests/de.c $(srcdir)/cord/tests/de_win.c gc.a cord.a $(CURSES) `./threadlibs` + ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c libgc.a libcord.a -lcurses -ltermlib -lucb `./threadlibs` + ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c libgc.a libcord.a -lcurses -ltermlib -ldld `./threadlibs` + ./if_mach POWERPC AIX $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c libgc.a libcord.a -lcurses + ./if_mach POWERPC DARWIN $(CC) $(CFLAGS) -o de $(srcdir)/cord/tests/de.c libgc.a libcord.a + ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o de $(srcdir)/cord/tests/de.c libgc.a libcord.a -lcurses + ./if_not_there de$(EXEEXT) || $(CC) $(CFLAGS) -o de$(EXEEXT) $(srcdir)/cord/tests/de.c $(srcdir)/cord/tests/de_win.c libgc.a libcord.a $(CURSES) `./threadlibs` if_mach$(EXEEXT): $(srcdir)/tools/if_mach.c \ $(srcdir)/include/private/gcconfig.h @@ -387,10 +387,10 @@ clean: 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$(EXEEXT) || $(CC) $(CFLAGS) -o gctest$(EXEEXT) tests/test.o gc.a `./threadlibs` + ./if_mach SPARC DRSNX $(CC) $(CFLAGS) -o gctest tests/test.o libgc.a -lucb + ./if_mach HP_PA HPUX $(CC) $(CFLAGS) -o gctest tests/test.o libgc.a -ldld `./threadlibs` + ./if_mach M68K AMIGA $(CC) $(CFLAGS) -UGC_AMIGA_MAKINGLIB -o gctest tests/test.o libgc.a `./threadlibs` + ./if_not_there gctest$(EXEEXT) || $(CC) $(CFLAGS) -o gctest$(EXEEXT) tests/test.o libgc.a `./threadlibs` # If an optimized setjmp_test generates a segmentation fault, # odds are your compiler is broken. gctest may still work. diff --git a/README.QUICK b/README.QUICK index f15767a5..74a257ed 100644 --- a/README.QUICK +++ b/README.QUICK @@ -28,7 +28,7 @@ For the version number, see README.md or include/gc_version.h files. INSTALLATION: Under UN*X, Linux, Cygwin: Alternative 1 (the old way): type "make -f Makefile.direct check". - Link against gc.a. + Link against libgc.a. Alternative 2 (the new way): type "./configure --prefix=<dir>; make; make check; make install". @@ -56,15 +56,14 @@ cordprnt.c is known to be less than perfectly portable. The rest of the package should still work.) See include/cord.h for the API. If you wish to use the collector from C++, type "make c++", or use ---enable-cplusplus with the configure script. With Makefile.direct, -"make c++" creates gccpp.a and gctba.a files (you should link with either -gccpp.a or gctba.a). With the alternate (preferred) build process, this -generates libgccpp.a and libgctba.a, and/or libgccpp.so and libgctba.so. -See include/gc_cpp.h and doc/gcinterface.md. +--enable-cplusplus with the configure script. This creates libgccpp.a and +libgctba.a files, or their shared library equivalents (libgccpp.so and +libgctba.so). You should link with either the first or the second one, but +not both. See include/gc_cpp.h and doc/gcinterface.md. TYPICAL USE: Include "gc.h" from the include subdirectory. Link against the -appropriate library ("gc.a" under UN*X). Replace calls to malloc +appropriate library ("libgc.a" under UN*X). Replace calls to malloc by calls to GC_MALLOC, and calls to realloc by calls to GC_REALLOC. If the object is known to never contain pointers, use GC_MALLOC_ATOMIC instead of GC_MALLOC. @@ -229,8 +229,8 @@ use up to about 30 MB of memory. (The multi-threaded version will use more. 64-bit versions may use more.) `make check` will also, as its last step, attempt to build and test the "cord" string library.) -Makefile.direct will generate a library gc.a which you should link against. -Typing "make cords" will build the cord library (cord.a). +Makefile.direct will generate a library libgc.a which you should link against. +Typing "make cords" will build the cord library (libcord.a). The GNU style build process understands the usual targets. `make check` runs a number of tests. `make install` installs at least libgc, and libcord. diff --git a/doc/gcinterface.md b/doc/gcinterface.md index e2c38cb7..539ae908 100644 --- a/doc/gcinterface.md +++ b/doc/gcinterface.md @@ -10,7 +10,7 @@ old code, not for new development. New code should use the interface discussed below. Code must be linked against the GC library. On most UNIX platforms, depending -on how the collector is built, this will be `gc.a` or `libgc.{a,so}`. +on how the collector is built, this will be `libgc.a` or `libgc.so`. The following describes the standard C interface to the garbage collector. It is not a complete definition of the interface. It describes only the most |