mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-21 23:29:16 +00:00
caf78f9f1c
- backed out v1.4 changes - replace .asm (as well as .c) suffixes with .o for OBJS definition - added a recipe for building ProDOS renamed object files
59 lines
1.2 KiB
Makefile
59 lines
1.2 KiB
Makefile
#
|
|
# $Id: lib.mk,v 1.5 1998/02/17 00:33:08 gdr-ftp Exp $
|
|
#
|
|
|
|
.INCLUDE: /src/gno/paths.mk
|
|
.INCLUDE: /src/gno/lib/const.mk
|
|
|
|
# Objects are source file names with [.c|.asm] changed to .o
|
|
# If we're keeping object files on a ProDOS partition, change the
|
|
# '_' characters in file names to '.'
|
|
.IF $(PRODOS_OBJS) == true
|
|
OBJS += {$(SRCS:b:s/_/./g)}.o
|
|
.ELSE
|
|
OBJS += {$(SRCS:b)}.o
|
|
.END
|
|
|
|
#
|
|
# Check for user-specified compile/load options
|
|
#
|
|
|
|
# Was debugging requested?
|
|
.IF $(DEBUG) != $(NULL)
|
|
CFLAGS+= -G$(DEBUG)
|
|
.END
|
|
|
|
# Was special optimizing requested?
|
|
OPTIMIZE*= 78
|
|
|
|
# Compile and load flags passed to occ
|
|
CFLAGS += -O$(OPTIMIZE)
|
|
|
|
# build is the default target
|
|
build: $(OBJ_DIR) $(LIBTARGET)
|
|
|
|
# create the object directory hierarchy if necessary
|
|
$(OBJ_DIR):
|
|
$(INSTALL) -d $(OBJ_DIR)
|
|
|
|
# Update library with out of date object files
|
|
$(LIBTARGET) .PRECIOUS: $(OBJS)
|
|
$(MAKELIB) $(MAKELIBFLAGS) -l $@ $^
|
|
|
|
.IF $(NO_REZ) == $(NULL)
|
|
$(LIBTARGET):: lib$(LIB).r
|
|
$(CATREZ) -d $@ $(OBJ_DIR)lib$(LIB).r
|
|
.END
|
|
|
|
# Use "dmake force; dmake build" to update all the object files in a library
|
|
force: $(OBJS)
|
|
touch $<
|
|
|
|
.INCLUDE: /src/gno/lib/librelease.mk
|
|
|
|
# Implicit rule to handle ProDOS-renamed object files
|
|
%.o: %.O;
|
|
%.O .PRECIOUS : $$(@:b:s/./_/g).c
|
|
$(CC) -o $(OBJ_DIR)$*.o $(CFLAGS) -c $<
|
|
|