1## ----------------------------------------------------------------------- 2## 3## Copyright 1998-2008 H. Peter Anvin - All Rights Reserved 4## Copyright 2010 Intel Corporation; author: H. Peter Anvin 5## 6## This program is free software; you can redistribute it and/or modify 7## it under the terms of the GNU General Public License as published by 8## the Free Software Foundation, Inc., 53 Temple Place Ste 330, 9## Boston MA 02111-1307, USA; either version 2 of the License, or 10## (at your option) any later version; incorporated herein by reference. 11## 12## ----------------------------------------------------------------------- 13 14# 15# Makefile for SYSLINUX Win64 16# 17# This is separated out mostly so we can have a different set of Makefile 18# variables. 19# 20 21OSTYPE = $(shell uname -msr) 22# Don't know how to do a native compile here... 23WINPREFIX := $(shell $(SRC)/find-mingw64.sh gcc) 24WINCFLAGS := $(GCCWARN) -Wno-sign-compare -Os -fomit-frame-pointer \ 25 -D_FILE_OFFSET_BITS=64 26WINLDFLAGS := -Os -s 27 28WINCFLAGS += -I$(SRC) -I$(SRC)/../win -I$(objdir) \ 29 -I$(SRC)/../libfat -I$(SRC)/../libinstaller \ 30 -I$(SRC)/../libinstaller/getopt 31 32WINCC := $(WINPREFIX)gcc 33WINAR := $(WINPREFIX)ar 34WINRANLIB := $(WINPREFIX)ranlib 35 36WINCC_IS_GOOD := $(shell $(WINCC) $(WINCFLAGS) $(WINLDFLAGS) \ 37 -o hello.exe $(SRC)/../win/hello.c >/dev/null 2>&1 ; echo $$?) 38 39.SUFFIXES: .c .obj .lib .exe .i .s .S 40 41SRCS = ../win/syslinux.c ../win/ntfssect.c 42OBJS = $(patsubst %.c,%.obj,$(notdir $(SRCS))) 43LIBSRC = ../libinstaller/fs.c \ 44 ../libinstaller/syslxmod.c \ 45 ../libinstaller/syslxopt.c \ 46 ../libinstaller/setadv.c \ 47 ../libinstaller/getopt/getopt_long.c \ 48 ../libinstaller/bootsect_bin.c \ 49 ../libinstaller/ldlinux_bin.c \ 50 ../libinstaller/ldlinuxc32_bin.c \ 51 ../libinstaller/mbr_bin.c \ 52 $(wildcard $(SRC)/../libfat/*.c) 53LIBOBJS = $(patsubst %.c,%.obj,$(notdir $(LIBSRC))) 54 55LIB = syslinux.lib 56 57VPATH = $(SRC):$(SRC)/../win:$(SRC)/../libfat:$(SRC)/../libinstaller:$(SRC)/../libinstaller/getopt:$(OBJ)/../libinstaller 58 59TARGETS = syslinux64.exe 60 61ifeq ($(WINCC_IS_GOOD),0) 62all: $(TARGETS) 63else 64all: 65 rm -f $(TARGETS) 66endif 67 68tidy dist: 69 -rm -f *.o *.obj *.lib *.i *.s *.a .*.d *.tmp *_bin.c hello.exe 70 71clean: tidy 72 73spotless: clean 74 -rm -f *~ $(TARGETS) 75 76installer: 77 78$(LIB): $(LIBOBJS) 79 rm -f $@ 80 $(WINAR) cq $@ $^ 81 $(WINRANLIB) $@ 82 83syslinux64.exe: $(OBJS) $(LIB) 84 $(WINCC) $(WINLDFLAGS) -o $@ $^ 85 86 87%.obj: %.c 88 $(WINCC) $(UMAKEDEPS) $(WINCFLAGS) -c -o $@ $< 89%.i: %.c 90 $(WINCC) $(UMAKEDEPS) $(WINCFLAGS) -E -o $@ $< 91%.s: %.c 92 $(WINCC) $(UMAKEDEPS) $(WINCFLAGS) -S -o $@ $< 93 94-include .*.d 95