summaryrefslogtreecommitdiff
path: root/com32/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Makefile: make the handling of firmware selection a little sanerH. Peter Anvin2016-02-091-1/+1
| | | | | | Clean up the handling of firmware selection inside the Makefiles. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Makefile: Pass down the variable EFI_BUILDSylvain Gault2015-11-271-1/+1
| | | | | | | | This variable indicates whether or nor the files are compiled for EFI. The lack of it lead the Makefiles to forget to add some compilation options specific to EFI. Signed-off-by: Sylvain Gault <sylvain.gault@gmail.com>
* com32/Makefile: resequence/regroupGene Cumm2015-05-171-10/+8
| | | | | | | | A lot more items have identical dependencies; regroup. Certain items make more sense to build first; resequence. Group library dependencies before COM32 directories Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* com32/Makefile: additional dependenciesJonathan Boeing2015-05-171-2/+2
| | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* com32: parallel depsGene Cumm2015-01-051-4/+2
| | | | | | Resort and collapse the list; add libutil to dep lib Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* gpllib: fix parallel building issueChong Lu2015-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | From: Chong Lu <Chong.Lu at windriver.com> There might be an error when parallel build: [snip] cp: cannot create directory `tmp/sysroots/x86_64-linux/usr/share/ syslinux/com32/include/gplinclude': No such file or directory make[4]: *** [install] Error 1 make[3]: *** [gpllib] Error 2 [snip] This is a potential issue. In ${S}/com32/gpllib/Makefile file, install target wants to copy $(SRC)/../gplinclude to $(INSTALLROOT)$(COM32DIR)/include/ directory, but in ${S}/com32/lib/Makefile file, the install target will remove $(INSTALLROOT)$(COM32DIR)/include directory. We need to do com32/lib first. The patch make com32/gpllib depends on com32/lib to fix this issue. Upstream-Status: Pending Signed-off-by: Chong Lu <Chong.Lu at windriver.com> Signed-off-by: Robert Yang <liezhi.yang at windriver.com> Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* libupload: fix parallel build issueRobert Yang2015-01-051-0/+1
| | | | | | | | | | | | | | | Fixed: cp -r syslinux-6.01/com32/libupload/*.h image/usr/share/syslinux/com32/include/ [snip] rm -rf image/usr/share/syslinux/com32/include [snip] cp: cannot create regular file `image/usr/share/syslinux/com32/include/serial.h': No such file or directory The cp is happened in the "libupload" dir, while "rm -fr" is happend in "lib" dir, let "libupload" depend "lib" will fix the problem. Signed-off-by: Robert Yang <liezhi.yang at windriver.com> Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* com32: Fixing lua's dependenciessyslinux-6.03-pre14Erwan Velu2014-06-101-1/+2
| | | | | | | | | | Lua shall be one of the latest module to build as it requires some other components to be built before. Prior this patch, it was impossible to make a parallel build when "j" was greater than 26. This patch fix the ordering and allow a "make -j" of com32 directory.
* com32: Add missing dependencies to MakefileGene Cumm2014-01-181-3/+3
| | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* Add per-firmware object directory supportMatt Fleming2012-10-161-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge remote-tracking branch 'zytor/master' into merge/elflink/masterMatt Fleming2012-05-311-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot of development has gone on in the 'master' branch since the last time we merged; new features, bug fixes, etc, etc. Conflicts: Makefile com32/Makefile com32/lib/Makefile com32/lib/syslinux/load_linux.c com32/modules/Makefile com32/modules/chain.c core/bootsect.inc core/init.inc version
| * Merge branch 'master' into chaindevMichal Soltys2011-05-041-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: com32/Makefile com32/modules/chain.c Note: add ReactOS' stuff introduced in old chain.c Signed-off-by: Michal Soltys <soltys@ziu.info>
| * | split chain into chain + iterator, expand iterators' codeMichal Soltys2010-08-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch: - splits chain into chain and iterator parts and moves them into their own com32/chain directory - extensively updates iterators' code - adjusts chain.c to use new iterators - fixes mbr/sect/hand/file allocation Signed-off-by: Michal Soltys <soltys@ziu.info>
* | | core: Shrink core/ldlinux.sys to be under 64K bytesMatt Fleming2012-03-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It would seem that running from a btrfs file system has been broken for some time. The reason is that core/ldlinux.sys has grown substantially, resulting in it weighing in at a whopping 88K bytes and no longer fitting within the first 64K segment of a btrfs file system. This huge size stems from the fact that the core links with libcom32min.a because it requires various symbols contained within that archive but it includes and exports *all* the symbols from libcom32min.a. The reasoning behind this design decision is that when a module is loaded any undefined symbols that are defined in libcom32min.a can be resolved at runtime by the core, without the module also needing to statically link against libcom32min.a. Unfortunately doing this has increased the size of the core beyond acceptable limits, such that booting from a btrfs file system no longer works. This commit links ldlinux.c32 against libcom32min.a so that now ldlinux.c32 exports all the symbols contained within the archive. Since we will always load ldlinux.c32 before any other modules, any undefined symbols will now be resolved by ldlinux.c32 instead of the core. ldlinux.c32 isn't subject to same size constraints as the core, e.g. fitting within 64K. Here are the sizes in bytes before and after this commit, Before: 33806 com32/elflink/ldlinux/ldlinux.c32 87749 core/ldlinux.sys After: 393871 com32/elflink/ldlinux/ldlinux.c32 45516 core/ldlinux.sys Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | | elflink: ldlinux should not have any dependenciesMatt Fleming2011-04-261-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ldlinux currently requires the get_key() symbol, which means it has a dependency on libutil_com.c32. ldlinux.c32 really should be a standalone module so let's move get_key.c into ldlinux/. However, moving get_key.c creates a new problem - native linux applications such as com32/samples/keytest.c require the get_key() symbol which is currently exported by libutil_lnx.a. To fix this, we create a new native linux library that exports any required symbols from ldlinux. With this change we need to update com32/Makefile so that we build com32/elfink/ldlinux before com32/samples, and seeing as ldlinux now has no dependencies, we may as well move it to the front of $SUBDIRS. Also, update elf_gen_dep.sh to skip ldlinux.c32 and not search for dependencies for any of its unresolved symbols. This way, if anyone inadvertently introduces a dependency that cannot be resolved by the core, ldlinux.c32 will fail to load at runtime (which guarantees that the newly introduced dependency won't go unnoticed). Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* | | elflink: Make ELF the default object formatMatt Fleming2011-04-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | com32/elflink/modules was originally created to house ELF modules and keep them separate from the COM32 modules as the elflink branch was being developed. However, this has inadvertently created a maintenance nightmare because code was copied from elsewhere in the tree into com32/elflink/modules, resulting in duplication. Bug fixes have been going into the original code but have not been merged onto the elflink branch, leaving the duplicate code in com32/elflink/modules buggy. So let's delete this directory. There really is no reason to keep ELF and COM32 modules separate because there's no reason to need both COM32 and ELF modules to coexist. ELF is a far superior object file format and all modules are not emitted as ELF objects. Now that we're outputting ELF modules we can use dynamic memory instead of the cs_bounce bounce buffer. This commit requires a certain amount of shuffling for some files. quicksort.c isn't a module and belongs as part of the util library. cli.h belongs in com32/include so that other modules can make use of the cli code in ldlinux.c32. All libraries are now ELF shared libraries which are only loaded to fixup unresolved symbols for executable modules and renamed from *.a to *.c32. This reduces the runtime memory footprint because libraries are only loaded when needed and because every executable no longer gets its own copy of code/data (as it would if linking with a static library). Also, remove MINLIBOBJS from libcom32.c32 because it is already part of libcom32min.a and we don't want to have any duplicate symbols between the core (which links with libcom32min.a) and libcom32.c32. Welcome to the New World Order of ELF modules! Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* | | Merge remote-tracking branch 'zytor/master' into elflinkMatt Fleming2011-04-261-1/+2
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | We need the recent Makefile filename changes to be merged into the elflink branch because it will make things simpler when converting all modules to ELF format. Conflicts: com32/Makefile com32/modules/Makefile version
| * | libupload: New library to manage uploadsErwan Velu2011-03-151-1/+1
| |/ | | | | | | | | | | | | | | This commit creates a library to upload content via 3 backends (srec/ymodem/tftp). Code came from sysdump and got librarized for being used more easily by more other com32 modules.
| * Merge branch 'master' into luaH. Peter Anvin2010-07-011-1/+2
| |\ | | | | | | | | | | | | | | | | | | Resolved Conflicts: com32/Makefile Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * | Add lua to the build listAlexey Zaytsev2008-07-181-1/+1
| | | | | | | | | | | | Signed-off-by: Alexey Zaytsev <zaytsev.a@protei.ru>
* | | elflink: Move code out of core and into ldlinux.c32Matt Fleming2011-03-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, there is a lot of code in core/elflink that is not strictly required for the core to function. There are benefits to keeping the core proper as small as possible, for example so that it can fit within a single 64K block on btrfs. So move the following pieces of code out of core/elflink and into a new ldlinux ELF module which will be automatically loaded by the core: - command line interface code - C configuration parser - refstr implementation - rest of the menu system Below are some measurements of the size of ldlinux.elf before and after this change. Before: text data bss dec hex filename 161328 10439 913468 1085235 108f33 core/ldlinux.elf After: text data bss dec hex filename 142423 10415 909500 1062338 1035c2 core/ldlinux.elf Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* | | elflink: some change in com32/Feng Tang2010-07-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | modified: com32/MCONFIG modified: com32/Makefile modified: com32/mboot/map.c modified: com32/mboot/mboot.h modified: com32/menu/menu.h modified: com32/menu/menumain.c modified: com32/menu/readconfig.c modified: com32/modules/chain.c modified: com32/modules/config.c modified: com32/modules/elf.c modified: com32/modules/ifcpu.c modified: com32/modules/ifcpu64.c new file: com32/modules/ifplop.c new file: com32/modules/ls.c modified: com32/modules/pmload.c new file: com32/modules/pwd.c modified: com32/modules/sdi.c new file: com32/modules/whichsys.c
* | | elflink: start merge with pathbased branchFeng Tang2010-07-201-1/+1
| |/ |/| | | | | | | | | | | | | | | | | | | | | modify these files to make compile pass modified: com32/MCONFIG modified: com32/Makefile modified: com32/include/klibc/compiler.h modified: com32/include/sys/elfcommon.h modified: com32/lib/Makefile modified: com32/lib/free.c modified: com32/lib/malloc.c
* | Merge branch 'master' into pathbasedsyslinux-4.00-pre20H. Peter Anvin2010-02-141-1/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolved Conflicts: com32/Makefile com32/include/syslinux/pxe.h core/pxelinux.asm core/syslinux.ld Signed-off-by: H. Peter Anvin <hpa@zytor.com>
| * | sysdump: first working version (can dump lowmem over TFTP)H. Peter Anvin2010-02-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Most of the infrastructure for sysdump, and enough to make it useful. Sysdump will produce a gzipped cpio archive containing individual data members; for now only a memory dump of lowmem. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | | Merge branch 'master' into fscH. Peter Anvin2009-12-221-1/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | gfxboot.c32syslinux-3.84-pre5Steffen Winterfeldt2009-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ok, here is the first try to turn the gfxboot wrapper into a com32 module. I had to extend the interface to the gfxboot core a bit to get it working. So it works only with latest gfxboot from git://gitorious.org/gfxboot/gfxboot.git Steffen Signed-off-by: Sebastian Herbszt <herbszt@gmx.de>
* | | com32: make com32 modules self-relocating (COM32R)H. Peter Anvin2009-05-241-1/+1
|/ / | | | | | | | | | | | | | | | | Introduce a new "COM32R" format, which is exactly like COM32 except that they contain position-independent code. Therefore, the core can load them at any sufficiently aligned address; by protocol select 4K as the alignment. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | First attempt at a rewritten mboot moduleH. Peter Anvin2009-04-261-1/+1
| | | | | | | | | | | | | | First attempt at rewriting the mboot module to use the Syslinux shuffle APIs. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* | Moving dmi & cpuid stuff to gpl subdirsErwan Velu2009-03-121-1/+0
| | | | | | | | | | | | | | | | | | Fixing copyrights Moving dmi includes to gplinclude/dmi Moving dmi code to gpllib/dmi/ Moving cpuid includes to gplinclude/ Moving cpuid code to gpllib/ Fixing Makefiles accordingly
* | Add gpllib, gplincludeH. Peter Anvin2009-03-121-1/+1
| | | | | | | | | | Add separate gpllib and gplinclude directories, and have a NOGPL variable in MCONFIG that can be set to exclude these directories.
* | Move complex menu to com32/cmenu; clean up the MakefilesH. Peter Anvin2009-03-021-1/+1
| | | | | | | | | | | | | | Move the complex menu system into the com32 directory so it can be sequenced properly with respect to hdt (it needs to be built after com32/lib but before com32/hdt). While we're at it, clean up the Makefiles somewhat.
* | hdt: Moving hdt to com32/modulesErwan Velu2009-02-251-1/+1
| |
* | COM32 module: Read-Only shellGene Cumm2009-02-151-1/+1
|/ | | | | | | | | | | | | Well, here's the read-only shell (rosh) that I've been working on. It's functional but still quite rough. My primary intention of posting it at this time is such that people have an easy way to demonstrate to themselves that the library calls I made work. This should apply as a patch to the head of the "dir" branch and the patch for c_cflag/c_lflag. The patch is only needed for Linux(without it, segfaults will occur). I've designed it to compile as a COM32 module and Linux binary when using GNU C (as Syslinux currently requires GNU C, if I read the Makefiles correctly).
* Move files out of root into core, dos, and utilsH. Peter Anvin2008-05-291-1/+1
| | | | | | | | 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.
* Simple menu system: move to dedicated subdirectoryH. Peter Anvin2008-02-101-1/+1
| | | | | Move the simple menu system into its own subdirectory, to make it more obvious which source files are part of it.
* set -e so the build stops on error.syslinux-3.50-pre3H. Peter Anvin2007-04-031-1/+1
|
* Make "make install" do the right thing for the com32 libraryhpa2004-12-141-1/+1
|
* Separate modules (intended to be production code used for real stuff)hpa2004-12-081-1/+1
| | | | and samples (demo code).
* Utility library which can be compiled either for Linux or for COM32hpa2004-12-011-1/+1
|
* Very first cut at a klibc-derived C library for com32hpa2004-11-101-0/+4