summaryrefslogtreecommitdiff
path: root/dos/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* build: sort sources to build in a more deterministic wayPhilippe Coval2015-01-051-1/+1
| | | | | | | | | | | | | | | | | It has been observed that binaries contents are depending on the order of linked objects. This order is caused by GNU make's wildcard function and the position of sources on filesystem. This change tries to prevent this kind of randomness. Also consider building using -j1 flag to make it even more reproductible. Change-Id: Ie8eee7f336e6f1fa2863c4150d967afd15519f1d Bug: http://bugzilla.syslinux.org/show_bug.cgi?id=57#related Signed-off-by: Philippe Coval <philippe.coval at open.eurogiciel.org>
* Merge remote-tracking branch 'origin/syslinux-5.xx'H. Peter Anvin2014-01-181-1/+1
|\ | | | | | | | | | | | | Resolved Conflicts: version Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * Makefiles: don't include *.tmpH. Peter Anvin2014-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since checkin: bd09a6d828fa Major Makefile cleanups; gcc 4.3.0 compatiblity ... we include *.tmp into the Makefiles as well as .*.d. This seems to have been a mistake in made when adding *.tmp to cleanup rules, probably using a sed script. This causes problems, because *.tmp files are generated by the gcc_ok macro and do not contain Makefile rules at all. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | mk/embedded.mk: Don't use -mregparm in coreMatt Fleming2013-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately commit 4eb06d95d882 ("mk: Add -fPIC for x86_64 to embedded.mk") left -mregparm enabled when compiling objects in core/, which means that when compiling for i386 those objects are compiled with a different ABI compared with everything else, leading to hangs when booting under 32-bit EFI. We should only enable -mregparm for code that absolutely requires it, such as dos/crt0.S which would need to be re-written to use another ABI. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Add per-firmware object directory supportMatt Fleming2012-10-161-7/+7
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we have multiple firmware backends it no longer makes sense to write object files to the same directory as their source. A better solution is to write the object files to a per-firmware directory under a top-level object directory. The top-level object directory can be specified on the command-line with the O= variable, e.g. make O=/tmp/obj. If no top-level object directory is specified an 'obj' directory is created in the top-level of the Syslinux source repository. All the existing make targets continue to work as before, however now they apply to all firmware backends, e.g. 'make installer' will build the BIOS, 32-bit EFI and 64-bit EFI installers and place them under $(OBJ)/bios, $(OBJ)/efi32 and $(OBJ)/efi64 respectively. Note unlike every other bit of Syslinux, the gpxe objects are still kept in the src directory, e.g. gpxe/src, since gpxe is only required by the BIOS backend. It is possible to specify a make target for a specific firmware or list of firmware with the following syntax, make [firmware[,firmware]] [target[,target]] To clean the object directory for just the BIOS firmware type, 'make bios clean' To build both the 32-bit and 64-bit EFI installers type, 'make efi32 efi64 installer' Since the Syslinux make infrastructure is now more complex a new file doc/building.txt has been created to explain how to build Syslinux. The top-level Makefile now exports some make variables for use in module Makefiles, - topdir - the top-level source directory of the Syslinux repository, e.g. /usr/src/syslinux - objdir - the top-level object directory for the firmware backend currently being built, e.g. /obj/syslinux/bios - SRC - the source directory in the Syslinux repository for the module currently being built, e.g. /usr/src/syslinux/com32/libupload - OBJ - the object directory for the module currently being built, e.g. /obj/syslinux/bios/com32/libupload Since we're rewriting the Makefile infrastructure anyway it seemed like a good idea to add parallel support. By writing subdirectories as prequisites for make targets the objects in those subdirectories can be built in parallel. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* Add NTFS filesystem support to Linux and Windows installersPaulo Alcantara2011-09-071-1/+1
| | | | Signed-off-by: Paulo Alcantara <pcacjr@gmail.com>
* Makefile: Move Makefile fragments into mk/Matt Fleming2011-04-071-1/+2
| | | | | | | | | | | | | | | | | | Move the MCONFIG files into a mk/ directory and give them more descriptive names. This is purely a cosmetic change to make the 'include' directives a bit more coherent by making it obvious exactly which MCONFIG file we're including. For example, in com32/lua/src/Makefile we exchange the line, include ../../MCONFIG for the much more comprehensible, include $(MAKEDIR)/com32.mk Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* dos: add missing file ldlinux.SH. Peter Anvin2010-07-191-0/+2
| | | | | | Add missing assembly wrapper for ldlinux.sys. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* dos, win32: use our own getopt_long() for bothH. Peter Anvin2010-07-191-2/+3
| | | | | | | | Use our own version of getopt_long() for both the DOS and Win32 installers. Currently, on MinGW, getopt_long() is a static library, but that could change in some installations. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* dos: fix non-executable files which were +xH. Peter Anvin2010-07-191-0/+0
| | | | | | Don't make non-executable files +x... Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* dos: change the link procedure to use negative pointers below DGROUPH. Peter Anvin2010-07-191-2/+2
| | | | | | | | | Use negative pointer values below DGROUP, i.e. for the .payload segment. This makes it a lot easier to figure out if we are dealing with pointers that shouldn't come from where they do, since the DGROUP and .payload segments no longer overlap, and in fact are congruent. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* dos: Work-in-progressShao Miller2010-07-031-2/+3
|
* dos: vacuous ADV supportH. Peter Anvin2010-06-221-1/+2
| | | | | | Vacuous ADV support: install an empty ADV. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* Merge syslinux/extlinux patch code and core codeH. Peter Anvin2010-06-201-0/+1
| | | | | | | | Merge the SYSLINUX and EXTLINUX patching code and core code, removing EXTLINUX as a separate derivative. All the disk-based systems now use the same code. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Reduce sector 1 space pressure; further merge installer codesyslinux-4.00-pre52H. Peter Anvin2010-06-201-1/+1
| | | | | | | | | | Reduce sector 1 space pressure by moving objects that aren't needed by Sector 1 proper into an "extended patch area". While we're mucking with the installer code, make the syslxint and extlinux installer code even more similar. It should now be pretty straightforward to outright merge the code. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Merge remote branch 'origin/master' into pathbasedH. Peter Anvin2010-02-201-1/+1
|\
| * dosutil: move copybs here, update MakefileH. Peter Anvin2010-02-151-1/+1
| | | | | | | | | | | | | | Move copybs to dosutil, change the Makefile to deal with UPX being able to compress (e.g. very small files.) Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | Merge branch 'master' into fscH. Peter Anvin2009-12-221-1/+3
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | Resolved Conflicts: com32/Makefile com32/lib/sys/open.c com32/modules/Makefile dos/Makefile dos/com16.ld dos/syslinux.c version Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * dos: int 25/26 may be register-dirty; wrap them in assemblyH. Peter Anvin2009-11-131-1/+2
| | | | | | | | | | | | | | | | int 25h and int 26h are known to be register-dirty for some versions of DOS -- unlike int 21h, which is usually clean. As such, wrap those in assembly functions. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * dos: don't add the linker script twice on the ld command lineH. Peter Anvin2009-11-111-1/+1
| | | | | | | | | | | | | | My version of the linker can deal with it, but others might not be so smart. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * dos: drop unneeded .eh_frame sectionH. Peter Anvin2009-11-111-1/+1
| | | | | | | | | | | | gcc will produce an .eh_frame section, which we have no use for. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * dos: make DOS installer work under WinMEH. Peter Anvin2009-11-101-0/+1
| | | | | | | | | | | | | | At least under WinME, the DOS installer did not work as advertised. With these modifications, it seems to work okay. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | dos: assume NASM 2.03, so use -MP -MD for dependenciesH. Peter Anvin2009-06-241-2/+1
| | | | | | | | | | | | Assume NASM 2.03 or later, so use -MP -MD to generate dependencies. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | upx: try --lzma first, since --ultra-brute doesn't... sighH. Peter Anvin2009-05-191-1/+3
| | | | | | | | | | | | | | You'd think upx --ultra-brute would test everything that is possible, but not so. --lzma needs to be specified separately. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | dos: run UPX on the DOS installer binary if we have itH. Peter Anvin2009-05-191-0/+1
| | | | | | | | | | | | | | If UPX is installed on the host system, we might as well use it to compress the DOS installer binary. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | FAT: change DOS installer to EXE; additional 32K limit fixesH. Peter Anvin2009-05-191-4/+6
|/ | | | | | | | | | | | | | Additional fixes for the 32K limits in the installers. In the case of the DOS installer, that means changing it from COM format to EXE format (since COM format has a 63K hard limit); retain the name syslinux.com for user compatibility, though (DOS doesn't care what the extension except for pathname search; if it finds an MZ EXE header it will use it.) With the change to EXE means having to handle more than one segment. Since we don't have a real DOS compiler we have to wing it a bit. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Fix NASM dependency generationH. Peter Anvin2009-04-271-1/+1
| | | | | | | | | Fix missing -M from NASM dependency generation calls; adopt the uniform stanza "-M -DDEPEND" even for sites that were already correct. Also, use ">" not ">>" for obvious reasons... Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Unify dependency generation: MCONFIG.embeddedH. Peter Anvin2009-04-271-10/+1
| | | | | | | Unify dependency generation and move common rules into MCONFIG.embedded. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Unify dependency generationH. Peter Anvin2009-04-271-5/+5
| | | | | | | | | | | | Make the dependency generation more common; have a general pattern in MCONFIG, and use it in rules (not in CFLAGS). For NASM source, in order to stay compatible with old versions of NASM, run NASM twice; newer versions of NASM is capable of generating dependencies simultaneously like gcc can, but that would break compatibility with older distros. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Clean up embedded Makefile targets; fix build failureH. Peter Anvin2008-08-221-16/+2
| | | | | | Unify common pieces to "embedded" targets (those that produce code that runs neither in the host nor in a com32 environment); this fixes the broken sample/ directory Makefile.
* Major Makefile cleanups; gcc 4.3.0 compatiblityH. Peter Anvin2008-08-201-22/+33
| | | | | Cleanup and centralize the Makefile system even more. Fix a gcc 4.3 incompatibility in memdisk (definition of strlen).
* Build _bin.c files in libinstaller; clean up B/I separationH. Peter Anvin2008-06-271-2/+4
| | | | | | | Clean up the BSUBDIR/ISUBDIR separation further. Build _bin.c files, which are an intermediate stage toward building the installers, in the libinstaller directory, since that directory is used by all the installers anyway. That also lets us get bin2c.pl out of the root.
* Move files out of root into core, dos, and utilsH. Peter Anvin2008-05-291-8/+13
| | | | | | | | Move source files out of the root directory; the root is a mess and has become virtually unmaintainable. The Syslinux core now lives in core/; the Linux and generic utilities has moved into utils/, and copybs.com has moved into dos/; it had to go somewhere, and it seemed as good a place as any.
* Assemble via ELF, to enable future linkingH. Peter Anvin2008-05-281-1/+2
| | | | | Assemble all files to ELF instead of using the NASM built-in linker. This can enable us to do actual linking in the future.
* Fixed the various Makefiles so that SYSLINUX compiles on platforms with GCC ↵Stefan Bucur2008-05-121-1/+2
| | | | -fstack-protector flag enabled by default.
* Use $(CC) in gcc_ok macro, not plain gccH. Peter Anvin2008-03-051-1/+1
| | | | | Use $(CC) in gcc_ok macro, not plain gcc. This seems to work, iff the gcc_ok macro is declared with =, not :=
* Prevent inclusion of system include files when inappropriateH. Peter Anvin2008-03-031-1/+2
| | | | | Use "-nostdinc -iwithprefix include" to prevent the inclusion of system header files, but still permitting *compiler* header files.
* Create libinstaller; actually implement boot-once for extlinuxH. Peter Anvin2007-12-141-3/+5
| | | | | | --once now supported for extlinux; some infrastructure for syslinux there as well, need implementation in all the various installers, however.
* Don't clobber /dev/null when compiling as rootLuciano Rocha2007-05-251-2/+4
| | | | | | Compiling as root is highly discouraged, but some people do it anyway. gcc_ok, however, can clobber /dev/null due to "-o /dev/null"; this is bad. Instead, write a temporary file and delete it.
* Deal with various distributions breaking gcc in weird waysH. Peter Anvin2007-02-061-1/+6
|
* Makefile cleanup to be able to build with CC='gcc -m32'syslinux-3.32-pre2H. Peter Anvin2006-10-171-1/+3
|
* Move -m32 to CFLAGS as wellH. Peter Anvin2006-10-171-2/+2
|
* Move flags from CC to CFLAGSH. Peter Anvin2006-10-171-2/+2
|
* Across-the-board stealth whitespace cleanupH. Peter Anvin2006-05-031-3/+0
|
* Make the various Makefiles agree what is BTARGET and what is ITARGEThpa2004-12-301-4/+5
|
* Fix using the resolver function from the API (with DS != CS); addsyslinux-3.00-pre8hpa2004-12-281-1/+1
| | | | test/sample file to do that; fix bug in chain.c.
* Support the -m and -a options for the DOS installer as wellhpa2004-12-281-2/+2
|
* Make DOS installer use our homegrown 64-bit dividesyslinux-2.20-pre7hpa2004-12-191-2/+2
|
* Beef up the sanity checking of the boot sector. For really better checkinghpa2004-12-191-1/+2
| | | | we should be checking the FAT for the media signature, too.
* Fix dec/hex bug in crt0.S; do -msoft-float just in casehpa2004-12-181-1/+1
|