199767f8919635c4928607450d9e0abb932109ceToomas Soome#
199767f8919635c4928607450d9e0abb932109ceToomas Soome# This file and its contents are supplied under the terms of the
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Common Development and Distribution License ("CDDL"), version 1.0.
199767f8919635c4928607450d9e0abb932109ceToomas Soome# You may only use this file in accordance with the terms of version
199767f8919635c4928607450d9e0abb932109ceToomas Soome# 1.0 of the CDDL.
199767f8919635c4928607450d9e0abb932109ceToomas Soome#
199767f8919635c4928607450d9e0abb932109ceToomas Soome# A full copy of the text of the CDDL should have accompanied this
199767f8919635c4928607450d9e0abb932109ceToomas Soome# source. A copy of the CDDL is also available via the Internet at
199767f8919635c4928607450d9e0abb932109ceToomas Soome# http://www.illumos.org/license/CDDL.
199767f8919635c4928607450d9e0abb932109ceToomas Soome#
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Copyright 2015 Toomas Soome <tsoome@me.com>
e547e4e8adbc4f31e3fac2e9d89d20e99911227cAndrew Stormont# Copyright 2016 RackTop Systems.
199767f8919635c4928607450d9e0abb932109ceToomas Soome#
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude $(SRC)/Makefile.master
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS= -O2 -I../../../../include -I../../..
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DLOADER_ZFS_SUPPORT
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCPPFLAGS=
199767f8919635c4928607450d9e0abb932109ceToomas Soome
e547e4e8adbc4f31e3fac2e9d89d20e99911227cAndrew Stormontall: libi386.a
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeclean: clobber
199767f8919635c4928607450d9e0abb932109ceToomas Soomeclobber:
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(RM) machine x86 $(OBJS) libi386.a
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeAS= $(GNU_ROOT)/bin/gas
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCC= $(GCC_ROOT)/bin/gcc
199767f8919635c4928607450d9e0abb932109ceToomas SoomeOBJCOPY= $(GNU_ROOT)/bin/gobjcopy
199767f8919635c4928607450d9e0abb932109ceToomas SoomeAS_FLAGS=--32
199767f8919635c4928607450d9e0abb932109ceToomas SoomeASFLAGS=-m32
199767f8919635c4928607450d9e0abb932109ceToomas SoomeAS_CPPFLAGS=
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCOMPILE.s = $(AS) $(AS_FLAGS)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeSRCS= biosacpi.c bioscd.c biosdisk.c biosmem.c biospnp.c \
199767f8919635c4928607450d9e0abb932109ceToomas Soome biospci.c biossmap.c bootinfo.c bootinfo32.c bootinfo64.c \
199767f8919635c4928607450d9e0abb932109ceToomas Soome comconsole.c devicename.c elf32_freebsd.c \
199767f8919635c4928607450d9e0abb932109ceToomas Soome elf64_freebsd.c multiboot.c multiboot_tramp.S \
199767f8919635c4928607450d9e0abb932109ceToomas Soome i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
199767f8919635c4928607450d9e0abb932109ceToomas Soome smbios.c time.c vidconsole.c amd64_tramp.S spinconsole.c linux.c \
199767f8919635c4928607450d9e0abb932109ceToomas Soome relocater_tramp.S
199767f8919635c4928607450d9e0abb932109ceToomas SoomeOBJS= biosacpi.o bioscd.o biosdisk.o biosmem.o biospnp.o \
199767f8919635c4928607450d9e0abb932109ceToomas Soome biospci.o biossmap.o bootinfo.o bootinfo32.o bootinfo64.o \
199767f8919635c4928607450d9e0abb932109ceToomas Soome comconsole.o devicename.o elf32_freebsd.o \
199767f8919635c4928607450d9e0abb932109ceToomas Soome elf64_freebsd.o multiboot.o multiboot_tramp.o \
199767f8919635c4928607450d9e0abb932109ceToomas Soome i386_copy.o i386_module.o nullconsole.o pxe.o pxetramp.o \
199767f8919635c4928607450d9e0abb932109ceToomas Soome smbios.o time.o vidconsole.o amd64_tramp.o spinconsole.o linux.o \
199767f8919635c4928607450d9e0abb932109ceToomas Soome relocater_tramp.o
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeLIBZFS= ../../zfs
199767f8919635c4928607450d9e0abb932109ceToomas SoomeSRCS += $(LIBZFS)/devicename_stubs.c
199767f8919635c4928607450d9e0abb932109ceToomas SoomeOBJS += devicename_stubs.o
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Enable PXE TFTP or NFS support, not both.
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DLOADER_TFTP_SUPPORT
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeBOOT_COMCONSOLE_PORT= 0x3f8
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DCOMPORT=${BOOT_COMCONSOLE_PORT}
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeBOOT_COMCONSOLE_SPEED= 9600
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DCOMSPEED=${BOOT_COMCONSOLE_SPEED}
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Make the disk code more talkative
199767f8919635c4928607450d9e0abb932109ceToomas Soome# CFLAGS+= -DDISK_DEBUG
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Export serial numbers, UUID, and asset tag from loader.
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DSMBIOS_SERIAL_NUMBERS
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Use little-endian UUID format as defined in SMBIOS 2.6.
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DSMBIOS_LITTLE_ENDIAN_UUID
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Use network-endian UUID format for backward compatibility.
199767f8919635c4928607450d9e0abb932109ceToomas Soome#CFLAGS += -DSMBIOS_NETWORK_ENDIAN_UUID
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Include simple terminal emulation (cons25-compatible)
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -DTERM_EMU
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# XXX: make alloca() useable
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -Dalloca=__builtin_alloca
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -I../../common -I../common \
199767f8919635c4928607450d9e0abb932109ceToomas Soome -I../btx/lib \
8ab1c3f559468e655c4eb8acce993320403dd72bToomas Soome -I$(SRC)/uts/intel/sys/acpi \
199767f8919635c4928607450d9e0abb932109ceToomas Soome -I../../.. -I.
199767f8919635c4928607450d9e0abb932109ceToomas Soome# the location of libstand
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCFLAGS += -I../../../../lib/libstand/
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# Handle FreeBSD specific %b and %D printf format specifiers
199767f8919635c4928607450d9e0abb932109ceToomas Soome#FORMAT_EXTENSIONS=-D__printf__=__freebsd_kprintf__
199767f8919635c4928607450d9e0abb932109ceToomas Soome#CFLAGS += ${FORMAT_EXTENSIONS}
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCLEANFILES += machine x86
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome# XXX: clang integrated-as doesn't grok .codeNN directives yet
199767f8919635c4928607450d9e0abb932109ceToomas Soome# CFLAGS.amd64_tramp.S= ${CLANG_NO_IAS}
199767f8919635c4928607450d9e0abb932109ceToomas Soome# CFLAGS.multiboot_tramp.S= ${CLANG_NO_IAS}
199767f8919635c4928607450d9e0abb932109ceToomas Soome# CFLAGS += ${CFLAGS.${.IMPSRC:T}}
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomeinclude ../Makefile.inc
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomemachine:
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(RM) machine
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(SYMLINK) ../../../i386/include machine
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soomex86:
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(RM) x86
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(SYMLINK) ../../../x86/include x86
199767f8919635c4928607450d9e0abb932109ceToomas Soome
e547e4e8adbc4f31e3fac2e9d89d20e99911227cAndrew Stormont$(OBJS): machine x86
e547e4e8adbc4f31e3fac2e9d89d20e99911227cAndrew Stormont
e547e4e8adbc4f31e3fac2e9d89d20e99911227cAndrew Stormontlibi386.a: $(OBJS)
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(AR) $(ARFLAGS) $@ $(OBJS)
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome%.o: $(LIBZFS)/%.c
199767f8919635c4928607450d9e0abb932109ceToomas Soome $(COMPILE.c) -o $@ $<