###################################################################### ## ## Copyright (C) 2003-2004, Karlsruhe University ## ## File path: Makefile.in ## ## 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: Makefile.in,v 1.2.2.6 2004/06/02 22:57:11 skoglund Exp $ ## ###################################################################### srcdir= @srcdir@ top_srcdir= @top_srcdir@ top_builddir= @top_builddir@ include $(top_srcdir)/Mk/l4.base.mk CFLAGS+= -fno-builtin KICKSTART_LINKBASE?= 00800000 PROGRAM= kickstart PROGRAM_DEPS= $(top_builddir)/lib/io/libio.a $(srcdir)/Makefile.in \ $(PROGRAM_DEPS_$(ARCH)) LIBS+= $(LIBS_$(ARCH)) SRCS= crt0-$(ARCH).S kickstart.cc kipmgr.cc elf.cc lib.cc \ $(ARCH).cc $(SRCS_$(ARCH)) OBJS+= $(OBJS_$(ARCH)) SRCS_MBI= mbi.cc mbi-$(ARCH).cc mbi-loader.cc IO32FILES= $(IO32FILES_$(ARCH)) GENFILES= $(GENFILES_$(ARCH)) LDFLAGS+= -Ttext=$(KICKSTART_LINKBASE) \ -L$(srcdir) -Tkickstart.ld CFLAGS+= -DREVISION="`cat .revision`" LGCC= ## ## IA32 specifics ## SRCS_ia32= $(SRCS_MBI) LIBS_ia32= -lio ## ## AMD64 specifics ## SRCS_amd64= $(SRCS_MBI) OBJS_amd64+= elf64.o GENFILES_amd64= elf64.cc LIBS_amd64= -lio32 CFLAGS_amd64= -m32 -O2 CPPFLAGS_amd64= -I$(top_srcdir)/lib/io -I$(srcdir) -DALSO_ELF64 LDFLAGS_amd64= -b elf32-i386 --oformat elf32-i386 \ -N -m elf_i386 -L. IO32FILES_amd64= get_hex.cc print.cc $(ARCH)-getc.cc $(ARCH)-putc.cc PROGRAM_DEPS_amd64= $(top_builddir)/util/kickstart/libio32.a pre-all: .revision copy_io32files $(GENFILES) post-clean: rm -f .revision $(GENFILES) rm -f $(IO32FILES:.cc=32.o) $(IO32FILES:.cc=32.cc) libio32.a .revision: $(SRCS) @$(ECHO_MSG) Making `echo $(srcdir)/ | sed s,^$(top_srcdir)/*,,`$@ @(cd $(srcdir) ; grep "\$$[I][d]:" $(SRCS)) | \ $(AWK) '{sum += $$5} END {print sum}' > $@ copy_io32files: @for F in $(IO32FILES:.cc=); do \ test $${F}32.cc -nt $(top_srcdir)/lib/io/$${F}.cc || \ cp $(top_srcdir)/lib/io/$${F}.cc $${F}32.cc; \ done libio32.a: $(IO32FILES:.cc=32.o) @$(ECHO_MSG) Linking `echo $(srcdir)/$@ | sed s,^$(top_srcdir)/,,` $(AR) cru $@ $(IO32FILES:.cc=32.o) $(RANLIB) $@ elf64.cc: $(srcdir)/elf.cc sed 's:^//\(#define ELF_64on32\):\1:' $(srcdir)/elf.cc > $@ elf32.cc: $(srcdir)/elf.cc sed 's:^//\(#define ELF_32on64\):\1:' $(srcdir)/elf.cc > $@ include $(top_srcdir)/Mk/l4.prog.mk