syslinux/win64/Makefile
<<
>>
Prefs
   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