# # the makefile for the garbage collector and heap I/O library # win32 specific MAKEFILE = makefile.win32 MAKE = nmake /F$(MAKEFILE) AR = lib ARFLAGS = RANLIB = lib LIB = libgc.lib MP_LIB = libmp-gc.lib GC_OBJS = init-gc.obj call-gc.obj minor-gc.obj major-gc.obj flip.obj gc-util.obj \ big-objects.obj ml-objects.obj obj-info.obj build-literals.obj \ record-ops.obj \ $(CHECK_HEAP) HEAP_IO_OBJS = import-heap.obj export-heap.obj \ blast-in.obj blast-out.obj blast-gc.obj \ heap-in-util.obj heap-out-util.obj \ writer.obj mem-writer.obj \ addr-hash.obj c-globals-tbl.obj MP_GC_OBJS = mp-gc.obj OBJS = $(GC_OBJS) $(HEAP_IO_OBJS) MP_OBJS = $(OBJS) $(MP_GC_OBJS) VERSION = v-dummy OBJS_DIR = ..\objs INC_DIR = ..\include INCLUDES = -I$(OBJS_DIR) -I$(INC_DIR) $(LIB) : $(VERSION) $(OBJS) del /F /Q $(LIB) $(AR) $(ARFLAGS) /out:$(LIB) $(OBJS) $(RANLIB) /out:$(LIB) $(MP_LIB) : $(VERSION) $(MP_OBJS) del /F /Q $(MP_LIB) $(AR) $(ARFLAGS) /out:$(MP_LIB) $(MP_OBJS) $(RANLIB) /out:$(MP_LIB) $(VERSION) : ($(MAKE) MAKE="$(MAKE)" clean) echo "$(VERSION)" > $(VERSION) # # GC objects # init-gc.obj: init-gc.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-state.h $(INC_DIR)\ml-values.h $(INC_DIR)\cntr.h \ $(INC_DIR)\bibop.h $(INC_DIR)\memory.h $(INC_DIR)\ml-mp.h \ heap.h arena-id.h heap-monitor.h \ $(INC_DIR)\stats-data.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) init-gc.c call-gc.obj: call-gc.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-state.h $(INC_DIR)\ml-values.h $(INC_DIR)\cntr.h \ $(INC_DIR)\bibop.h $(INC_DIR)\memory.h $(INC_DIR)\ml-mp.h \ heap.h arena-id.h heap-monitor.h \ $(INC_DIR)\stats-data.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) call-gc.c minor-gc.obj: minor-gc.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-state.h \ $(INC_DIR)\ml-values.h $(INC_DIR)\ml-objects.h $(INC_DIR)\tags.h \ $(INC_DIR)\bibop.h $(INC_DIR)\ml-globals.h \ card-map.h heap.h arena-id.h copy-loop.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) minor-gc.c major-gc.obj: major-gc.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-state.h $(INC_DIR)\ml-values.h $(INC_DIR)\ml-objects.h \ $(INC_DIR)\bibop.h $(INC_DIR)\tags.h $(INC_DIR)\ml-globals.h \ card-map.h heap.h arena-id.h copy-loop.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) major-gc.c flip.obj: flip.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\bibop.h $(INC_DIR)\ml-state.h \ heap.h arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) flip.c gc-util.obj: gc-util.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-values.h $(INC_DIR)\bibop.h $(INC_DIR)\memory.h \ card-map.h heap.h arena-id.h heap-monitor.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) gc-util.c big-objects.obj: big-objects.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\memory.h $(INC_DIR)\bibop.h \ heap.h arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) big-objects.c ml-objects.obj: ml-objects.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-objects.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\bibop.h $(INC_DIR)\tags.h \ heap.h arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) ml-objects.c build-literals.obj: \ build-literals.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-objects.h $(INC_DIR)\tags.h \ heap.h arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) build-literals.c record-ops.obj: \ record-ops.c \ $(OBJS_DIR)/ml-sizes.h \ $(INC_DIR)/ml-base.h $(INC_DIR)/ml-objects.h $(INC_DIR)/tags.h \ arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) record-ops.c obj-info.obj: obj-info.c \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-values.h $(INC_DIR)\gc.h \ $(INC_DIR)\bibop.h \ heap.h arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) obj-info.c xmonitor.obj: xmonitor.c \ $(OBJS_DIR)\ml-sizes.h $(INC_DIR)\ml-base.h \ $(INC_DIR)\bibop.h \ heap.h arena-id.h \ xmonitor.h heap-monitor.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) xmonitor.c check-heap.obj: check-heap.c \ $(OBJS_DIR)\ml-sizes.h $(INC_DIR)\ml-base.h \ $(INC_DIR)\bibop.h \ card-map.h heap.h arena-id.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) check-heap.c gc-stats.obj: gc-stats.c \ $(OBJS_DIR)\ml-sizes.h $(INC_DIR)\ml-base.h \ gc-stats.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) gc-stats.c mp-gc.obj: mp-gc.c \ $(OBJS_DIR)\ml-sizes.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-state.h $(INC_DIR)\ml-values.h $(INC_DIR)\cntr.h \ $(INC_DIR)\bibop.h $(INC_DIR)\memory.h $(INC_DIR)\ml-mp.h \ heap.h arena-id.h heap-monitor.h \ $(INC_DIR)\stats-data.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) mp-gc.c # # Heap I/O objects # c-globals-tbl.obj: c-globals-tbl.c \ $(INC_DIR)\ml-base.h $(INC_DIR)\c-globals-tbl.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) c-globals-tbl.c import-heap.obj: import-heap.c \ $(OBJS_DIR)\ml-sizes.h $(OBJS_DIR)\reg-mask.h \ $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-state.h $(INC_DIR)\c-globals-tbl.h \ $(INC_DIR)\cache-flush.h \ card-map.h arena-id.h heap.h writer.h \ ml-heap-image.h addr-hash.h heap-input.h $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) import-heap.c DEPENDENTS = $(OBJS_DIR)\ml-sizes.h $(INC_DIR)\ml-base.h $(INC_DIR)\ml-limits.h \ $(INC_DIR)\ml-state.h $(INC_DIR)\c-globals-tbl.h \ arena-id.h heap.h writer.h \ ml-heap-image.h addr-hash.h heap-input.h export-heap.obj: export-heap.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) export-heap.c blast-in.obj: blast-in.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) blast-in.c blast-out.obj: blast-out.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) blast-out.c blast-gc.obj: blast-gc.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) blast-gc.c heap-in-util.obj: heap-in-util.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) heap-in-util.c heap-out-util.obj: heap-out-util.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) heap-out-util.c writer.obj: writer.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) writer.c mem-writer.obj: mem-writer.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) mem-writer.c addr-hash.obj: addr-hash.c $(DEPENDENTS) $(CC) /c $(CFLAGS) $(DEFS) $(INCLUDES) addr-hash.c clean : del /Q /F v-* *.obj *.pdb $(LIB) $(MP_LIB)