###################################################################### ## ## Copyright (C) 2003-2005, Karlsruhe University ## ## File path: l4.build.mk ## Description: Rules for compilation ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions ## are met: ## 1. Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## 2. Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in the ## documentation and/or other materials provided with the distribution. ## ## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ## OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ## LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ## OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## ## $Id: l4.build.mk,v 1.9.2.3 2004/04/28 18:02:52 skoglund Exp $ ## ###################################################################### VPATH= $(srcdir) MAKEFILES= .depend MKFILE_DEPS= Makefile \ $(top_srcdir)/Mk/l4.base.mk \ $(top_srcdir)/Mk/l4.build.mk \ $(top_srcdir)/Mk/l4.lib.mk \ $(top_srcdir)/Mk/l4.prog.mk \ $(top_srcdir)/Mk/sdi.idl.mk \ $(top_builddir)/config.mk # Portable way of converting SRCS to OBJS _CC_OBJS= ${filter-out %.c %.S, ${SRCS}} _C_OBJS= ${filter-out %.S %cc %cpp, ${SRCS}} _S_OBJS= ${filter-out %.c %cc %cpp, ${SRCS}} _IDL_STUBS= ${filter %.idl, ${IDLS}} _CC_OBJS_O= $(addsuffix .o, $(basename $(_CC_OBJS))) OBJS+= $(_CC_OBJS_O) $(_C_OBJS:.c=.o) $(_S_OBJS:.S=.o) \ ${SRCS:C/.(cc|c|S)$/.o/g} SERV_STUBS+= $(subst .idl,-server.h,$(_IDL_STUBS)) CLIE_STUBS+= $(subst .idl,-client.h,$(_IDL_STUBS)) TMPL_STUBS+= $(subst .idl,-template.cc,$(_IDL_STUBS)) .cc.o: $(MKFILE_DEPS) @$(ECHO_MSG) `echo $< | sed s,^$(top_srcdir)/,,` $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ .cpp.o: $(MKFILE_DEPS) @$(ECHO_MSG) `echo $< | sed s,^$(top_srcdir)/,,` $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ .c.o: $(MKFILE_DEPS) @$(ECHO_MSG) `echo $< | sed s,^$(top_srcdir)/,,` $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ .S.o: $(MKFILE_DEPS) @$(ECHO_MSG) `echo $< | sed s,^$(top_srcdir)/,,` $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ # IDL client stub code generation ... $(SERV_STUBS): $(MKFILE_DEPS) @$(ECHO_MSG) server-stub : $@ $(IDL) $(IDLFLAGS) -s -h $@ $(srcdir)/$(subst -server.h,.idl,$@) $(CLIE_STUBS): $(MKFILE_DEPS) @$(ECHO_MSG) client-stub : $@ $(IDL) $(IDLFLAGS) -c -h $@ $(srcdir)/$(subst -client.h,.idl,$@) $(TMPL_STUBS): $(MKFILE_DEPS) @$(ECHO_MSG) template-stub : $@ $(IDL) $(IDLFLAGS) -t -o $@ $(srcdir)/$(subst -template.cc,.idl,$@) Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @$(ECHO_MSG) Rebuilding `echo $(srcdir)/ | sed s,^$(top_srcdir)/*,,`$@ @(cd $(top_builddir) && $(SHELL) ./config.status) $(top_builddir)/config.mk: $(top_srcdir)/config.mk.in $(top_builddir)/config.status @$(ECHO_MSG) Rebuilding config.mk @(cd $(top_builddir) && $(SHELL) ./config.status) $(top_builddir)/config.status: $(top_srcdir)/configure (cd $(top_builddir) && $(SHELL) ./config.status --recheck) $(top_srcdir)/configure: $(top_srcdir)/configure.in @$(ECHO_MSG) Rebuilding configure @(cd $(top_srcdir) && $(AUTOCONF)) .depend: $(SRCS) @if test ! -z "$(SRCS)"; then \ $(ECHO_MSG) Making dependencies in \ `echo $(srcdir) | sed s,^$(top_srcdir)/,,`; \ $(CC) $(CPPFLAGS) $(CFLAGS) -M -MG \ `echo $(SRCS) | sed -e 's, , $(srcdir)/,g' -e 's,^,$(srcdir)/,'` \ > .depend; \ else \ touch $@; \ fi