#!/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 . # 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