File: Makefile

package info (click to toggle)
e16keyedit 0.2-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 128 kB
  • ctags: 99
  • sloc: ansic: 1,162; makefile: 158
file content (159 lines) | stat: -rw-r--r-- 5,343 bytes parent folder | download | duplicates (3)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# files in source that are needed
PACKAGE  = efm-test
VERSION  = 0.0.0
SRCS     = \
    viewer.c menus.c ipc.c
HEADERS  = \
    viewer.h menus.h
DATA     =
EXTRAS   =
BUILD    = \

LIB_DIRS = \
    -L/usr/local/lib -L/usr/X11R6/lib -L/usr/X11/lib -L/usr/dt/lib
LIBS     = \
    `gtk-config --libs` -lgdbm -lgdk_imlib
CFLAGS   = \
    -O -g -D_GNU_SOURCE $(DEVFLAGS)
#CFLAGS   = \
#    -O -g -W -Wall -Wno-unused  -pedantic -pedantic-errors -ansi -D_GNU_SOURCE
OPTFLAGS   = \
    -O6 -mpentium -mcpu=pentium -march=pentium -ffast-math -D_GNU_SOURCE
INCLUDES = \
    `gtk-config --cflags` -I..

BIN      = e16keyedit

# configurable stuff
BINARY_DESTINATION = /usr/local/enlightenment/bin
DATA_DESTINATION   = /usr/local/enlightenment/share

# commands to do things
INSTALL  = install
MKDIR    = mkdir
RM       = rm -f
RMRF     = rm -rf
TAR      = tar
GZIP     = gzip
CD       = cd
MAKE     = make
STRIP    = strip
SED      = sed
MAKEDEP  = gcc -MM $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES)
#MAKEDEP = makedepend -f- -s'\# CUT' -- -Y $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) --

# piece together variables
OBJS     = $(SRCS:.c=.o)
DIST     = $(PACKAGE)-$(VERSION)
BLD      = Makefile $(BUILD)
FILES    = $(SRCS) $(HEADERS) $(DATA) $(BLD) $(EXTRAS)

all: e16keyedit

# show help
help:
	@echo
	@echo
#	@echo "To build and install type:"
#	@echo "	make [options] install"
	@echo "To only build the binaries:"
	@echo "	make [options] e16keyedit"
	@echo
	@echo "Options for building (zero or more of the following):"
	@echo "	BINARY_DESTINATION=/path/to/binary/dir [default="$(BINARY_DESTINATION)"]"
	@echo "	DATA_DESTINATION=/path/to/data/dir [default="$(DATA_DESTINATION)"]"
	@echo "	CFLAGS=\"flags for compiler\" [default="$(CFLAGS)"]"
	@echo "	INCLUDES=\"include directiors compiler\" [default="$(INCLUDES)"]"
	@echo "	EXTRA_CFLAGS=\"extra flags for compiler\" [default="$(EXTRA_CFLAGS)"]"
	@echo "	EXTRA_INCLUDES=\"extra include directiors compiler\" [default="$(EXTRA_INCLUDES)"]"
	@echo "	LIBS=\"libraries to link to\" [default="$(LIBS)"]"
	@echo "	LIB_DIRS=\"directories to find libraries\" [default="$(LIB_DIRS)"]"
	@echo "	EXTRA_LIBS=\"extra libraries to link to\" [default="$(EXTRA_LIBS)"]"
	@echo "	EXTRA_LIB_DIRS=\"extra directories to find libraries\" [default="$(EXTRA_LIB_DIRS)"]"
	@echo
	@echo

bigcompile:
	$(CC) $(SRCS) -o e16keyedit $(OPTFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) $(LIBS) $(EXTRA_LIBS) $(LIB_DIRS) $(EXTRA_LIB_DIRS)
	$(STRIP) ./e16keyedit

optimized: bigcompile

# rules for source
e16keyedit:    $(OBJS)
	$(RM) $@
	$(CC) -o $@ $(OBJS) $(LIBS) $(EXTRA_LIBS) $(LIB_DIRS) $(EXTRA_LIB_DIRS)

.c.o:
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) -c $< -o $@

# clean out build crap
clean::
	$(RMRF) $(BIN) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut $(DIST) $(DIST).tar $(DIST).tar.gz ./=build ./=install "#"*

# how to install
install:: e
	@echo 
	@echo 
	@echo "You don't really want to do this. it doesn't work yet."
	@echo 
	@echo 
#	for I in $(BIN); do $(INSTALL) -D -m 0775 $$I $(prefix)$(BINARY_DESTINATION)/$$I; done
#	for I in $(DATA); do $(INSTALL) -D -m 0664 $$I $(prefix)$(DATA_DESTINATION)/$$I; done

# how to make a dist tarball
dist::
	$(RMRF) $(DIST) $(DIST).tar $(DIST).tar.gz
	$(MKDIR) $(DIST)
	for I in $(FILES); do \
	if [ -x $$I ]; then $(INSTALL) -D -m 0775 $$I $(DIST)/$$I; else \
	if [ -f $$I ]; then $(INSTALL) -D -m 0664 $$I $(DIST)/$$I; else \
	if [ -d $$I ]; then $(INSTALL) -D -m 0555 -d $$I $(DIST)/$$I; fi; fi; fi; \
	done 
	$(TAR) -cf $(DIST).tar $(DIST)
	$(GZIP) $(DIST).tar
	$(RMRF) $(DIST)

# how to check the dist
distcheck: dist
	$(RMRF) ./=build ./=install
	$(MKDIR) ./=build
	$(MKDIR) ./=install
	($(CD) ./=build; $(GZIP) -d -c ../$(DIST).tar.gz | $(TAR) xvf -;)
	($(CD) ./=build/$(PACKAGE)-$(VERSION); \
	 $(MAKE) prefix=../../=install install)
	$(RMRF) ./=build ./=install $(DIST).tar.gz

# Update dependency info
dep depend:
	$(SED) '/^# CUT/,$$d' Makefile > Makefile.tmp
	echo "# CUT" >> Makefile.tmp
	$(MAKEDEP) $(SRCS) >> Makefile.tmp && mv Makefile.tmp Makefile

# File dependencies.  Do not remove the next line.  sed needs it.
# CUT
batch.o: batch.c batch.h events.h x.h ev_filter.h str.h mem.h util.h \
 file.h
db.o: db.c db.h mem.h util.h str.h
efm_view.o: efm_view.c x.h str.h mem.h util.h file.h events.h ev_x.h \
 ev_filter.h efm_view.h db.h im_engine.h batch.h glob.h
ev_dispatch.o: ev_dispatch.c ev_dispatch.h events.h x.h str.h mem.h \
 util.h
ev_filter.o: ev_filter.c ev_filter.h events.h x.h str.h mem.h util.h
ev_ipc.o: ev_ipc.c events.h x.h ev_ipc.h str.h mem.h util.h file.h
ev_session.o: ev_session.c str.h mem.h util.h
ev_signal.o: ev_signal.c events.h x.h ev_signal.h str.h mem.h util.h
ev_x.o: ev_x.c events.h x.h ev_x.h str.h mem.h util.h
events.o: events.c events.h x.h ev_filter.h str.h mem.h util.h
file.o: file.c file.h mem.h str.h events.h x.h db.h glob.h ev_ipc.h \
 jobs.h util.h
glob.o: glob.c str.h glob.h
im_engine.o: im_engine.c util.h mem.h str.h x.h events.h ev_x.h \
 im_engine.h db.h
jobs.o: jobs.c jobs.h
main.o: main.c events.h x.h ev_signal.h ev_x.h ev_ipc.h ev_filter.h \
 batch.h efm_view.h file.h db.h im_engine.h mem.h util.h str.h
mem.o: mem.c mem.h
str.o: str.c str.h mem.h
util.o: util.c util.h mem.h str.h
x.o: x.c x.h mem.h str.h