mirror of
				https://github.com/xcat2/xNBA.git
				synced 2025-10-31 19:32:34 +00:00 
			
		
		
		
	[makefile] Kill off arch/$(ARCH)/Config
The arch/i386/Config file has long been marked as deprecated. Move all the pertinent bits to arch/i386/Makefile instead and remove arch/i386/Config.
This commit is contained in:
		
							
								
								
									
										13
									
								
								src/Makefile
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								src/Makefile
									
									
									
									
									
								
							| @@ -73,19 +73,6 @@ noargs : blib $(BIN)/NIC $(BIN)/gpxe.dsk $(BIN)/gpxe.iso $(BIN)/gpxe.usb $(BIN)/ | ||||
| # | ||||
| ARCH		:= $(shell uname -m | sed -e 's,i[3456789]86,i386,') | ||||
|  | ||||
| # handle x86_64 like i386, but set -m32 option for 32bit code only | ||||
| ifeq ($(ARCH),x86_64) | ||||
| ARCH		:= i386 | ||||
| CFLAGS		+= -m32 | ||||
| ASFLAGS         += --32 | ||||
| LDFLAGS         += -m elf_i386 | ||||
| endif | ||||
|  | ||||
| # Drag in architecture-specific Config | ||||
| # | ||||
| MAKEDEPS	+= arch/$(ARCH)/Config | ||||
| include arch/$(ARCH)/Config | ||||
|  | ||||
| # Common flags | ||||
| # | ||||
| CFLAGS		+= -I include -I arch/$(ARCH)/include -I . -DARCH=$(ARCH) | ||||
|   | ||||
| @@ -1,148 +0,0 @@ | ||||
| # -*- makefile -*- | ||||
|  | ||||
| ############################################################################## | ||||
| ############################################################################## | ||||
| # | ||||
| # IMPORTANT! | ||||
| #  | ||||
| # The use of this file to set options that affect only single object | ||||
| # files is deprecated, because changing anything in this file results | ||||
| # in a complete rebuild, which is slow.  All options are gradually | ||||
| # being migrated to config.h, which does not suffer from this problem. | ||||
| #  | ||||
| # Only options that affect the entire build (e.g. overriding the $(CC) | ||||
| # Makefile variable) should be placed in here. | ||||
| # | ||||
| ############################################################################## | ||||
| ############################################################################## | ||||
|  | ||||
|  | ||||
| # Config for i386 Etherboot | ||||
| # | ||||
| # Do not delete the tag OptionDescription and /OptionDescription | ||||
| # It is used to automatically generate the documentation. | ||||
| # | ||||
| # @OptionDescrition@ | ||||
| # | ||||
| #	BIOS interface options: | ||||
| # | ||||
| #	-DPCBIOS | ||||
| #			Compile in support for the normal pcbios | ||||
| #	-DLINUXBIOS | ||||
| #			Compile in support for LinuxBIOS | ||||
| #	-DBBS_BUT_NOT_PNP_COMPLIANT | ||||
| #			Some BIOSes claim to be PNP but they don't conform | ||||
| #			to the BBS spec which specifies that ES:DI must | ||||
| #			point to the string $PnP on entry. This option | ||||
| #			works around those. This option must be added to | ||||
| #			LCONFIG. | ||||
| #	-DNO_DELAYED_INT | ||||
| #			Take control as soon as BIOS detects the ROM. | ||||
| #			Normally hooks onto INT18H or INT19H. Use only if you | ||||
| #			have a very non-conformant BIOS as it bypasses | ||||
| #			BIOS initialisation of devices. This only works for | ||||
| #			legacy ROMs, i.e. PCI_PNP_HEADER not defined. | ||||
| #			This option was formerly called NOINT19H. | ||||
| #	-DBOOT_INT18H | ||||
| #			Etherboot normally hooks onto INT19H for legacy ROMs. | ||||
| #			You can choose to hook onto INT18H (BASIC interpreter | ||||
| #			entry point) instead. This entry point is used when | ||||
| #			all boot devices have been exhausted. This option must | ||||
| #			be added to LCONFIG. | ||||
| #	-DCONFIG_PCI_DIRECT | ||||
| #			Define this for PCI BIOSes that do not implement | ||||
| #			BIOS32 or not correctly. Normally not needed. | ||||
| #			Only works for BIOSes of a certain era. | ||||
| #	-DCONFIG_TSC_CURRTICKS | ||||
| #			Uses the processor time stamp counter instead of reading | ||||
| #			the BIOS time counter.  This allows Etherboot to work | ||||
| #			even without a BIOS.  This only works on late model | ||||
| #			486s and above. | ||||
| #	-DCONFIG_NO_TIMER2 | ||||
| #			Some systems do not have timer2 implemented. | ||||
| #			If you have a RTC this will allow you to roughly calibrate | ||||
| #			it using outb instructions. | ||||
| # | ||||
| #	Extended cpu options | ||||
|  | ||||
| #	-DCONFIG_X86_64	 | ||||
| #			Compile in support for booting x86_64 64bit binaries. | ||||
| # | ||||
| #	PXE loader options: | ||||
| # | ||||
| #	-DPXELOADER_KEEP_ALL | ||||
| #			Prevent PXE loader (prefix) from unloading the | ||||
| #			PXE stack.  You will want to use this if, for | ||||
| #			example, you are booting via PXE-on-floppy. | ||||
| #			You may want to use it under certain | ||||
| #			circumstances when using the Etherboot UNDI | ||||
| #			driver; these are complex and best practice is | ||||
| #			not yet established. | ||||
| #			 | ||||
| #	Obscure options you probably don't need to touch: | ||||
| # | ||||
| #	-DIGNORE_E820_MAP | ||||
| #			Ignore the memory map returned by the E820 BIOS | ||||
| #			call.  May be necessary on some buggy BIOSes. | ||||
| #	-DT503_AUI | ||||
| #			Use AUI by default on 3c503 cards. | ||||
| #	-DFLATTEN_REAL_MODE | ||||
| # 			Use 4GB segment limits when calling out to or | ||||
| #			returning to real-mode code.  This is necessary to | ||||
| #			work around some buggy code (e.g. OpenBSD's pxeboot) | ||||
| #			that uses flat real-mode without being sufficiently | ||||
| #			paranoid about the volatility of its segment limits. | ||||
|  | ||||
| # | ||||
| # @/OptionDescription@ | ||||
|  | ||||
| # BIOS select don't change unless you know what you are doing | ||||
| # CFLAGS+=	-DPCBIOS | ||||
|  | ||||
| # Compile in k8/hammer support | ||||
| # CFLAGS+=	-DCONFIG_X86_64 | ||||
|  | ||||
| # Options to make a version of Etherboot that will work under linuxBIOS. | ||||
| # CFLAGS+=	-DLINUXBIOS -DCONFIG_TSC_CURRTICKS  -DCONSOLE_SERIAL -DCOMCONSOLE=0x3f8 -DCOMPRESERVE -DCONFIG_PCI_DIRECT -DELF_IMAGE  | ||||
|  | ||||
| # These options affect the loader that is prepended to the Etherboot image | ||||
| # LCONFIG+=	-DBBS_BUT_NOT_PNP_COMPLIANT | ||||
| # LCONFIG+=	-DBOOT_INT18H | ||||
|  | ||||
| # Produce code that will work with OpenBSD's pxeboot | ||||
| # CFLAGS+=	-DFLATTEN_REAL_MODE | ||||
|  | ||||
| CFLAGS+= -fstrength-reduce -fomit-frame-pointer -march=i386 | ||||
| # Squeeze the code in as little space as possible. | ||||
| # gcc3 needs a different syntax to gcc2 if you want to avoid spurious warnings. | ||||
| GCC_VERSION	 = $(subst ., ,$(shell $(CC) -dumpversion)) | ||||
| GCC_MAJORVERSION = $(firstword $(GCC_VERSION)) | ||||
| ifeq ($(GCC_MAJORVERSION),2) | ||||
| CFLAGS+=	-malign-jumps=1 -malign-loops=1 -malign-functions=1 | ||||
| else | ||||
| CFLAGS+=	-falign-jumps=1 -falign-loops=1 -falign-functions=1 | ||||
| endif | ||||
|  | ||||
| # this is almost always a win. the kernel uses it, too. | ||||
| CFLAGS+= -mpreferred-stack-boundary=2 | ||||
|  | ||||
| # use regparm for all functions - C functions called from assembly (or | ||||
| # vice versa) need __cdecl now | ||||
| CFLAGS+= -mregparm=3 | ||||
|  | ||||
| # use -mrtd (same __cdecl requirements as above) | ||||
| CFLAGS+= -mrtd | ||||
|  | ||||
| # this is the logical complement to -mregparm=3.  | ||||
| # it doesn't currently buy us anything, but if anything ever tries | ||||
| # to return small structures, let's be prepared | ||||
| CFLAGS+= -freg-struct-return | ||||
|  | ||||
| LDFLAGS+=	-N --no-check-sections | ||||
|  | ||||
| ifeq "$(shell uname -s)" "FreeBSD" | ||||
| CFLAGS+=	-DIMAGE_FREEBSD -DELF_IMAGE -DAOUT_IMAGE | ||||
| endif | ||||
|  | ||||
| # An alternate location for isolinux.bin can be set here | ||||
| # ISOLINUX_BIN=/path/to/isolinux.bin | ||||
| @@ -1,3 +1,59 @@ | ||||
| # Force i386-only instructions | ||||
| # | ||||
| CFLAGS		+= -march=i386 | ||||
|  | ||||
| # Code size reduction. | ||||
| # | ||||
| CFLAGS		+= -fstrength-reduce -fomit-frame-pointer | ||||
|  | ||||
| # Code size reduction.  gcc3 needs a different syntax to gcc2 if you | ||||
| # want to avoid spurious warnings. | ||||
| # | ||||
| GCC_VERSION	:= $(subst ., ,$(shell $(CC) -dumpversion)) | ||||
| GCC_MAJOR	:= $(firstword $(GCC_VERSION)) | ||||
| ifeq ($(GCC_MAJOR),2) | ||||
| CFLAGS		+= -malign-jumps=1 -malign-loops=1 -malign-functions=1 | ||||
| else | ||||
| CFLAGS		+= -falign-jumps=1 -falign-loops=1 -falign-functions=1 | ||||
| endif | ||||
|  | ||||
| # Code size reduction.  This is almost always a win.  The kernel uses it, too. | ||||
| # | ||||
| CFLAGS		+= -mpreferred-stack-boundary=2 | ||||
|  | ||||
| # Code size reduction.  Use regparm for all functions - C functions | ||||
| # called from assembly (or vice versa) need __cdecl now | ||||
| # | ||||
| CFLAGS		+= -mregparm=3 | ||||
|  | ||||
| # Code size reduction.  Use -mrtd (same __cdecl requirements as above) | ||||
| CFLAGS		+= -mrtd | ||||
|  | ||||
| # Code size reduction.  This is the logical complement to -mregparm=3. | ||||
| # It doesn't currently buy us anything, but if anything ever tries to | ||||
| # return small structures, let's be prepared | ||||
| # | ||||
| CFLAGS		+= -freg-struct-return | ||||
|  | ||||
| # Stop ld from complaining about our customised linker script | ||||
| # | ||||
| LDFLAGS		+= -N --no-check-sections | ||||
|  | ||||
| # Force 32-bit code even on an x86-64 machine | ||||
| # | ||||
| CFLAGS		+= -m32 | ||||
| ASFLAGS         += --32 | ||||
| LDFLAGS         += -m elf_i386 | ||||
|  | ||||
| # EFI requires -fshort-wchar, and nothing else currently uses wchar_t | ||||
| # | ||||
| CFLAGS		+= -fshort-wchar | ||||
|  | ||||
| # We need to undefine the default macro "i386" when compiling .S | ||||
| # files, otherwise ".arch i386" translates to ".arch 1"... | ||||
| # | ||||
| CFLAGS			+= -Ui386 | ||||
|  | ||||
| # Locations of utilities | ||||
| # | ||||
| ISOLINUX_BIN	= /usr/lib/syslinux/isolinux.bin | ||||
| @@ -25,11 +81,6 @@ NON_AUTO_SRCS	+= arch/i386/core/wince_loader.c | ||||
| OBJS_unnrv2b		= unnrv2b unnrv2b16 | ||||
| CFLAGS_unnrv2b16	= -DCODE16 | ||||
|  | ||||
| # We need to undefine the default macro "i386" when compiling .S | ||||
| # files, otherwise ".arch i386" translates to ".arch 1"... | ||||
| # | ||||
| CFLAGS_S		+= -Ui386 | ||||
|  | ||||
| # The i386 linker script | ||||
| # | ||||
| LDSCRIPT		= arch/i386/scripts/i386.lds | ||||
|   | ||||
		Reference in New Issue
	
	Block a user