1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
###########################################################################
# Files ###################################################################
NAME = since
VERSION = 0.3
SRC = $(NAME).c
OBJ = $(NAME).o
TARGET = $(NAME)
MAN = $(NAME).1
ARCHIVE = $(NAME)-$(VERSION).tar.gz
LSM = $(NAME)-$(VERSION).lsm
INTARGET = /usr/local/bin/$(TARGET)
INMAN = /usr/local/man/man1/$(MAN)
###########################################################################
# Compiler and Flags ######################################################
CC = gcc
CFLAGS = -Wall -O2 -fomit-frame-pointer -DVERSION=\"$(VERSION)\"
STRIP = strip
#CFLAGS += -DTRACE
#CFLAGS += -g
#CFLAGS += -pg
###########################################################################
# Auxillary Programs ######################################################
RM = rm -f
INSTALL = install -c
LINK = ln -s
TOUCH = touch
TAR = tar
MKLSM = ./mklsm
###########################################################################
# Generic build all #######################################################
all : $(TARGET)
###########################################################################
# Install #################################################################
install : $(TARGET)
$(INSTALL) -m 0755 $(TARGET) $(INTARGET)
$(INSTALL) -m 0644 $(MAN) $(INMAN)
###########################################################################
# Build since executable ##################################################
$(TARGET) : $(OBJ)
$(CC) $(CFLAGS) $(OBJ) -o $(TARGET)
$(STRIP) $(TARGET)
###########################################################################
# Build object files from source ##########################################
.c.o :
$(CC) $(CFLAGS) -c $*.c
###########################################################################
# Generate a package ready for distribution ###############################
package :
$(TOUCH) $(SRC)
$(RM) $(NAME)-$(VERSION)
$(LINK) . $(NAME)-$(VERSION)
$(TAR) czvf $(ARCHIVE) $(NAME)-$(VERSION)/{$(SRC),$(MAN),$(TARGET),Makefile,README,INSTALL,COPYING}
$(MKLSM) $(NAME) $(VERSION)
###########################################################################
# Remove intermediate files ###############################################
clean :
$(RM) *.o core $(NAME)
reallyclean : clean
$(RM) $(TARGET) $(ARCHIVE)
|