File: Makefile

package info (click to toggle)
since 0.3-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 84 kB
  • ctags: 34
  • sloc: ansic: 315; makefile: 79
file content (79 lines) | stat: -rw-r--r-- 2,442 bytes parent folder | download
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)