gno/binrules.mk

55 lines
1.6 KiB
Makefile

#
# Standard compilation rules for utilities (directories ./bin, ./sbin,
# ./usr.bin, ./usr.sbin). These are not used when building the libraries.
#
# $Id: binrules.mk,v 1.8 1998/12/31 21:26:34 gdr-ftp Exp $
#
# Devin Reade, Dave Tribby, 1997.
#
# Default target, "build," generates the program file
build: $(OBJ_DIR) $(LOCAL_SETUP) $(OBJ_DIR)$(PROG)
# create the object directory hierarchy if necessary
$(OBJ_DIR):
$(INSTALL) -d $(OBJ_DIR)
# Create the main program file with a ".root" and set the stack size.
# Include standard occ options
# -a0: use .o suffix for object file
# -c: don't link after compiling
$(MAIN).o: $(MAINSRC)
$(CC) -o $@ $(CFLAGS:s/ -r / /) -a0 -c $(MAINSRC)
# Program depends upon all the objects. Add the version resource.
$(OBJ_DIR)$(PROG): $(OBJS)
$(CC) -o $@ $(LDFLAGS) $< $(LDLIBS)
$(CATREZ) -d $@ $(OBJ_DIR)$(PROG).r
$(OBJ_DIR)$(PROG): $(PROG).r
# Remove intermediate files. If we don't put shell meta characters in
# here, then dmake doesn't have to start up a subshell and can instead
# exec the line directly
clean:
-$(RM) -f $(OBJ_DIR){$(OBJS)}
-$(RM) -f $(OBJ_DIR)$(MAIN).root
-$(RM) -f $(OBJ_DIR)$(PROG).r
-$(RM) -f $(PROG).rej
# Remove intermediate files and program file
clobber: clean
-$(RM) $(OBJ_DIR)$(PROG)
# Implicit rule to handle Rez source on case sensitive Appleshare servers
.IF $(APPLESHARE_CASE_SENSITIVE) != $(NULL)
%.r : %.rez
$(INSTALL) $< $(TMPDIR)/$<
$(REZ) -o $@ -c $(REZFLAGS) $(TMPDIR)/$<
$(RM) -f $(TMPDIR)/$<
.END
# Implicit rule to handle ProDOS-renamed object files
%.o: %.O;
%.O .PRECIOUS : $$(@:b:s/./_/g).c
$(CC) -o $(OBJ_DIR)$*.o $(CFLAGS) -c $<