#
# Copyright (c) 1999,2004 Silicon Graphics, Inc.  All Rights Reserved.
# 
# 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; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
#
# This code contributed by Michal Kara (lemming@ucw.cz)
#

###################################
#                                 #
#  Makefile to make config files. #
#  This is an example. You will   #
#  need to customize to your own  #
#  requires and environment.      #
#                                 #
###################################

# This makefile takes all files ending with .src in the current directory and
# runs them through cpp which allows you to use macros and includes in them. The
# resulting file has the .made suffix. Dependencies are handled attomatically.

CPP := cpp
RM-F := rm -f
SOURCE := $(wildcard *.src)
DEST := $(patsubst %.src,%.made,$(SOURCE))
DEPS := $(patsubst %.src,%.d,$(SOURCE))
MISSING_DEPS := $(filter-out $(wildcard $(DEPS)),$(DEPS))
MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.src,$(MISSING_DEPS)))

CPPFLAGS += -MD

.PHONY: deps clean

all : $(DEST)

deps : $(DEPS)

clean :
	@$(RM-F) *.d
	@$(RM-F) *.made

ifneq ($(MISSING_DEPS),)
$(MISSING_DEPS) :
	@$(RM-F) $(patsubst %.d,%.o,$@)
endif

-include $(DEPS)

%.made : %.src
	$(CPP) $(CPPFLAGS) $(patsubst %.src,%.d2,$<) $< >$@
	@sed -e "s/\.src\.o/\.made/g" $(patsubst %.src,%.d2,$<) >$(patsubst %.src,%.d,$<)
	@rm $(patsubst %.src,%.d2,$<)

