summaryrefslogtreecommitdiff
path: root/Makefile.in
blob: cfe977259b5e7662b30f6a0693dd71d771b336f2 (plain)
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
#!/usr/bin/make -f
#name = Luke's Makefile
#ver = 1.0
#  Copyright (C) 2009 Luke Shumaker
#  
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License as
#  published by the Free Software Foundation; either version 2 of the
#  License, or (at your option) any later version.
#  
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  General Public License for more details.
#  
#  You should have received a copy of the GNU General Public License
#  along with this program;  see the file COPYING.
#  If not, see <http://www.gnu.org/licenses>.

# Directories ########################################################
DESTDIR = @DESTDIR@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
dirs = $(DESTDIR) $(prefix) $(exec_prefix) $(bindir) $(sbindir) $(libexecdir)
srcdir = @srcdir@
VPATH = $(srcdir)

# Programs ###########################################################
SHELL = /bin/sh
CC = gcc
INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
MKDIR = $(INSTALL) -d #mkdir -p
RM = rm -f
SED = sed

include main.mk

# dist ###############################################################
d = $(name)-$(ver)
.PHONY : dist
dist : $(d).tar.gz

$(d).tar.gz : $(d) $(addprefix $(d)/,$(filelist))
	tar -czf $@ $<

$(d) : 
	$(INSTALL) -m 777 -d $@

$(d)/% : $(srcdir)/% $(d)
	$(INSTALL) -m 777 -d $(dir $@)
	cp $< $@

# implicit rules #####################################################
$(addprefix $(DESTDIR),$(dirs)) :
	$(MKDIR) $@

% : %.sh
	$(SED) 's/@VER@/$(ver)/g' < $< > $@

$(DESTDIR)$(bindir)/% : % $(DESTDIR)$(bindir)
	$(INSTALL_PROGRAM) $< $@

.PHONY : dist Makefiles

csources = $(filter %.c,$(filelist))
Makefiles : $(shell find '$(srcdir)' -type f -name Makefile.in) \
            $(shell find '$(srcdir)' -type f -name Makefile.in) \
            $(csources:.c=.d)

%Makefile %.mk : $(srcdir)/configure
	$< @CONFIG@

# This is taken straight from the GNU `make' manual.
# That makes it GFDL, which is incompatible with the GPL
# I claim `fair-use'
%.d: %.c
	@set -e; rm -f $@; \
	$(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$

ifneq ($(shell ls -d $(csources:.c=.d) 2>/dev/null),)
  include $(csources:.c=.d)
endif