## ----------------------------------------------------------------------- ## ## Copyright 1998-2009 H. Peter Anvin - All Rights Reserved ## Copyright 2009 Intel Corporation; author: H. Peter Anvin ## ## 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, Inc., 53 Temple Place Ste 330, ## Boston MA 02111-1307, USA; either version 2 of the License, or ## (at your option) any later version; incorporated herein by reference. ## ## ----------------------------------------------------------------------- # # Makefile for the SYSLINUX core # # No builtin rules MAKEFLAGS += -r MAKE += -r topdir = . include $(topdir)/MCONFIG.embedded -include $(topdir)/version.mk OPTFLAGS = INCLUDES = # The targets to build in this directory... BTARGET = kwdhash.gen isolinux.bin # All primary source files for the main syslinux files NASMSRC = $(wildcard *.asm) NASMHDR = $(wildcard *.inc) CSRC = $(wildcard *.c) CHDR = $(wildcard *.h) OTHERSRC = keywords ALLSRC = $(NASMSRC) $(NASMHDR) $(CSRC) $(CHDR) $(OTHERSRC) MKINITRD_VERSION = $(shell cat ../VERSION) DOCS = COPYING NEWS README TODO BUGS VERSION isolinux.txt LIBDIR = /usr/lib/mkinitrd DOCDIR = /usr/share/doc/mkinitrd-$(MKINITRD_VERSION)/isolinux # The DATE is set on the make command line when building binaries for # official release. Otherwise, substitute a hex string that is pretty much # guaranteed to be unique to be unique from build to build. ifndef HEXDATE HEXDATE := $(shell $(PERL) now.pl $(SRCS)) endif ifndef DATE DATE := $(shell sh gen-id.sh $(VERSION) $(HEXDATE)) endif all: $(BTARGET) kwdhash.gen: keywords genhash.pl $(PERL) genhash.pl < keywords > kwdhash.gen .PRECIOUS: %.elf # Standard rule for {isolinux,isolinux-debug}.bin iso%.bin: iso%.elf checksumiso.pl $(OBJCOPY) -O binary $< $@ $(PERL) checksumiso.pl $@ %.o: %.asm kwdhash.gen version.gen ( $(NASM) -M -DDEPEND $(NINCLUDE) -o $@ $< ; echo '' ) > .$@.d; true $(NASM) $(NASMOPT) -f elf -g -F stabs -DDATE_STR="'$(DATE)'" \ -DHEXDATE="$(HEXDATE)" \ -l $(@:.o=.lsr) -o $@ $< %.elf: %.o syslinux.ld $(LD) $(LDFLAGS) -T syslinux.ld -M -o $@ $< > $(@:.elf=.map) $(OBJDUMP) -h $@ > $(@:.elf=.sec) $(PERL) lstadjust.pl $(@:.elf=.lsr) $(@:.elf=.sec) $(@:.elf=.lst) install: mkdir -p $(DESTDIR)/$(LIBDIR) mkdir -p $(DESTDIR)/$(DOCDIR) install -m755 -c isolinux.bin $(DESTDIR)/$(LIBDIR) for n in $(DOCS); do install -m644 $$n $(DESTDIR)/$(DOCDIR); done tidy dist: rm -f codepage.cp *.o *.elf stupid.* patch.offset .depend .*.d rm -f *.lsr *.lst *.map *.sec rm -f $(OBSOLETE) rm -f $(BTARGET) *.bin *_bin.c clean: tidy # Include dependencies file -include .*.d