# Copyright (C) 1999 Silicon Graphics, Inc.  All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 of the GNU General Public License as published
# by the Free Software Fondation.
#
# This program is distributed in the hope that it would be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  Further, any license provided herein,
# whether implied or otherwise, is limited to this program in accordance with
# the express provisions of the GNU General Public License.  Patent licenses,
# if any, provided herein do not apply to combinations of this program with
# other product or programs, or any other product whatsoever.  This program is
# distributed without any warranty that the program is delivered free of the
# rightful claim of any third person by way of infringement or the like.  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 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,$<)

