1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
## -----------------------------------------------------------------------
##
## Copyright 2001-2008 H. Peter Anvin - 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, 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.
##
## -----------------------------------------------------------------------
##
## samples for syslinux users
##
TMPFILE = $(shell mktemp /tmp/gcc_ok.XXXXXX)
CC = gcc
gcc_ok = $(shell tmpf=$(TMPFILE); if $(CC) $(1) -c -x c /dev/null -o $$tmpf 2>/dev/null; \
then echo $(1); else echo $(2); fi; rm -f $$tmpf)
M32 := $(call gcc_ok,-m32,) $(call gcc_ok,-ffreestanding,) $(call gcc_ok,-fno-stack-protector,)
LD = ld -m elf_i386
AR = ar
NASM = nasm
NASMOPT = -O9999
RANLIB = ranlib
CFLAGS = $(M32) -W -Wall -march=i386 -Os -fomit-frame-pointer -I../com32/include
SFLAGS = $(M32) -march=i386
LDFLAGS = -s
OBJCOPY = objcopy
PPMTOLSS16 = ../utils/ppmtolss16
LIB = liboldcom32.a
GZIPPROG = gzip
PNGTOPNM = pngtopnm
LIBOBJS = conio.o atou.o skipatou.o printf.o c32exit.o
.SUFFIXES: .lss .c .o .elf .c32
all: syslogo.lss comecho.com hello.c32 hello2.c32 filetest.c32 c32echo.c32 \
fd.c32 $(LIB)
.PRECIOUS: %.o
%.o: %.S
$(CC) $(SFLAGS) -c -o $@ $<
.PRECIOUS: %.o
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
.PRECIOUS: %.elf
%.elf: c32entry.o %.o $(LIB)
$(LD) -Ttext 0x101000 -e _start -o $@ $^
%.c32: %.elf
$(OBJCOPY) -O binary $< $@
%.com: %.asm
$(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $<
$(LIB): $(LIBOBJS)
rm -f $@
$(AR) cq $@ $^
$(RANLIB) $@
%.lss: %.ppm.gz $(PPMTOLSS16)
$(GZIPPROG) -cd $< | \
$(PPMTOLSS16) \#000000=0 \#d0d0d0=7 \#f6f6f6=15 \
> $@
%.ppm.gz: %.png
$(PNGTOPNM) $< | gzip -9 > $@
tidy dist:
rm -f *.o *.a *.lst *.elf
# Don't specify *.com since mdiskchk.com can't be built using Linux tools
clean: tidy
rm -f *.lss *.o *.c32 comecho.com
spotless: clean
|