#!/bin/sh

unset CFLAGS

INCLUDE="/usr/include/syslinux"
LIBRARY="/usr/lib/syslinux/$1"

cflag()
{
	if [ -z "$CFLAGS" ]; then
		CFLAGS="$1"
	else
		CFLAGS="$CFLAGS $1"
	fi
}

cflag -std=gnu99
cflag -Wall
cflag -Wextra
cflag -Wstrict-prototypes
cflag -Os
cflag -fomit-frame-pointer

case "$1" in
bios)
	cflag -m32
	cflag -march=i386
	cflag -mpreferred-stack-boundary=2
	cflag -Wl,-m,elf_i386
	cflag -DLDLINUX=\"ldlinux.c32\"
	cflag -mregparm=3
	cflag -DREGPARM=3
	;;
efi32)
	cflag -m32
	cflag -march=i386
	cflag -mpreferred-stack-boundary=2
	cflag -Wl,-m,elf_i386
	cflag -DLDLINUX=\"ldlinux.e32\"
	;;
efi64)
	cflag -m64
	cflag -march=x86-64
	cflag -mpreferred-stack-boundary=4
	cflag -Wl,-m,elf_x86_64
	cflag -DLDLINUX=\"ldlinux.e64\"
	;;
esac

cflag -Wl,-T,$LIBRARY/elf.ld
cflag -L$LIBRARY

cflag -Wl,-shared
cflag -Wl,--hash-style=gnu
#cflag -Wl,--as-needed

cflag -l:libgpl.c32
cflag -l:libmenu.c32
cflag -l:libcom32.c32
cflag -l:libutil.c32

cflag -D__COM32__
cflag -DDYNAMIC_MODULE
cflag -fno-stack-protector
cflag -fwrapv
cflag -freg-struct-return
cflag -fno-exceptions
cflag -fno-asynchronous-unwind-tables
cflag -fPIC
cflag -falign-functions=0
cflag -falign-jumps=0
cflag -falign-labels=0
cflag -falign-loops=0

cflag -nostdinc
cflag -nostdlib
cflag -nodefaultlibs
cflag -iwithprefix
cflag include

cflag -I$INCLUDE/gpl
cflag -I$INCLUDE/menu
cflag -I$INCLUDE/com32/sys
cflag -I$INCLUDE/com32
cflag -I$INCLUDE/util
cflag -I$INCLUDE/misc
cflag -I$INCLUDE/core

echo $CFLAGS
