aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Add multiarch directory for arm hardfloat variantThomas Preud'homme2012-07-291-1/+3
| | | | | | | Arm hardfloat variant uses a different ABI than arm and uses thus a different multiarch directory for headers and libraries. This commit detect whether the system uses the hardfloat variant and configure the multiarch directory accordingly.
* tests: Added numerous tests.Milutin Jovanović2012-06-181-0/+2
| | | | | | | | | | | | The tests are taken almost verbatim from the open source project PicoC. It can be found at https://code.google.com/p/picoc/. The tests range from very simple/trivial ones to more complicated. My view is that the more tests the better. Without tests like this I was very reluctant to make any changes to tcc for the fear of breaking things. The tests pass on Win32, OSX, Linux x86 and x86_64. One or two tests fail on each platform due to differences in the runtime library.
* Detect multiarch on Kfreebsd and HurdThomas Preud'homme2012-06-131-0/+3
|
* osx: Removed some optimizations for x86 builds as they were causing seg faults.Milutin Jovanović2012-06-101-0/+2
| | | | | | | | | | | | | When using gcc compiler (as opposed to llvm) to build 32 bit tcc, compiler flags -mpreferred-stack-boundary=2, -march=i386 and -falign-functions=2 were being used. -march is redundant as -m32 is already being used. The other two seem to be corrupting stack. I am not sure why this is the case, as the explanation of the flags states that only running code size should be affected, but it does. I think that is is safe to remove these flags altogether for all compilers and platforms, especially since they are not being used for 64 bit builds. However I do not want to apply such wide change without agreement from the people on the mailing list.
* Add support for arm hardfloat calling conventionThomas Preud'homme2012-06-051-0/+2
| | | | | See Procedure Call Standard for the ARM Architecture (AAPCS) for more details.
* Several multiarch/biarch fixesThomas Preud'homme2012-05-231-2/+4
| | | | | | | | * Add multiarch directories for arm and i386 * Fix detection of biarch: /lib64/ld-linux-x86-64.so.2 is mandated by ABI and is thus always present, even if there is no biarch * Define CONFIG_LDDIR directly with the right value in case of multiarch instead of defining it to /lib and then redifining it.
* support "x86_64-linux-gnu" subdirs with lib & includegrischka2012-04-181-1/+2
| | | | suggested for newer ubuntu by Damian Gryski
* cleanup some partially broken patchesgrischka2012-04-181-1/+1
| | | | | | | | | | | | | | | | | | | - tests/Makefile: fix commit de54586d5b45800e26952ec77b4f51ad4c1e0079 This hunk it unrelated to the other changes (which are about MacOSX). It is not useful and partially wrong. Optional tests are meant to stay optional, btest would work only for i386 - tcc.h: fix commit c52d79605a3c895a16e18f0b7193f1f4b480a60f by unknown The message says it's for MINTW but the patch has obviously no effect for MINGW (which defines __GNUC__). However the patch seems useful for MSC which however needs _strto(u)i64 with underscore. - Makefile: fix commit 5280293d6b16bbe24dfda76e37f32322fa2874ca Do not build tcc.o with -DONE_SOURCE because we finally build tcc from tcc.o and libtcc.a/so
* Further changes improving the OSX build. Everything builds. libtest passes.Milutin Jovanovic2012-03-061-4/+1
| | | | | | | | | | | | | | | | | | | | Other tests still have issues, currently with weak linking. One of the primary stumbling blocks on OSX is the lack of support for mach-o binaries. Therefore all tcc usage on OSX has to be limited to elf binaries, presumably produced by tcc itself. Therefore I had to enable building of tiny_libmaker for OSX. Then changed the make to use tcc and tiny_libmaker to compile the tcclib1. In order to compile the tests, specifically the parts that use weak linking, I have had to define MACOSX_DEPLOYMENT_TARGET to 10.2, which seems like a hack, but extensive searching seems to indicate that this is the only way to make apple gcc allow weak linking. Using any other value, bigger or smaller breaks weak linking. Also added _ANSI_SOURCE define required by some OSX headers, and some cosmetic gitignore changes. I believe these changes should not impact other platforms.
* Revert "Multiple fixes for 64 bit sections"Andrew Mulbrook2012-03-031-3/+0
| | | | This reverts commit d7a7c3769d0a1dcb8400258cd8adf78a8566de61.
* Multiple fixes for 64 bit sectionsmob2012-02-261-0/+3
| | | | | | | | | | | | | | | This changeset attempts to fix a few problems when giving using the high 32bits of a 64bit section offset. There are likely more issues (or perhaps regressions) lurking in the muck here. In general, this moves a few data type declarations to use uplong. Also, add support for 64bit mingw32 building under cygwin. Because native types are used for 64 bit offsets, this won't fix challenges with cross compiling from 32bit -> 64bit. Tested under cygwin, against binary compiled with -Wl,-Ttext=0xffffff8000000000 Signed-off-by: Andrew Mulbrook <andrew262@gmail.com>
* Attempt to fix 32 bit OSX build. The fix consists of adding -m32 and -m64Milutin Jovanovic2012-02-161-2/+7
| | | | | | | | to the appropriate CFLAGS. In addition, memory hooks are very different on OSX, so build of bcheck.c had to be disabled for now. Change of the CFLAGS does affect builds on other platforms, and this needs to be tested.
* Patch attempting to build OSX TinyCC.Milutin Jovanovic2012-02-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | Applied patch found on stackoverflow (link below). I also found some related changes that looked like logically needed. The stackoverflow changes addressed only two registers which were breaking a compile. However reading the code in the same file shows two other register accesses that, while not breaking the build, should have the same fix. http://stackoverflow.com/questions/3712902/problems-compiling-tcc-on-os-x/3713144#3713144 The test driver was changed by changing 'cp -u' into 'cp' as '-u' is not supported on mac osx. I found that osx build required the WITHOUT_LIBTCC define. I suspect the reason for this is tcc unability to handle mach-o files. In order to properly address this I had to change 'configure' to propagate target os name to Makefile. Current state is that simple tests work, but not the whole 'make test' suite runs. To the best of my knowledge, these changes should not impact other platforms.
* libtcc: minor adjustmentsgrischka2011-08-111-2/+2
| | | | | | | | | | | | | | | | | - use {B} to substitute tcc_lih_path (instead of \b) - expand CONFIG_TCC_CRTPREFIX in CONFIG_TCC_LIBPATHS which fixes duplicate CONFIG_SYSROOT. - put default CONFIG_SYSROOT ("") into tcc.h - remove hack from commit db6fcce78f4d8ea25036dd6643e9fa83d8e52e5a because $(tccdir)/include is already in sysincludes - configure: error out for unrecognized options. - win32/build-tcc.bat: put libtcc into base dir where it will find lib/include automatically, and build libtcc_test example.
* configure: add switches to set search pathsgrischka2011-08-061-2/+2
| | | | | | | | | | | | | | | | | | | --sysincludepaths=.. specify system include paths, colon separated" Sets CONFIG_TCC_SYSINCLUDEPATHS --libpaths=... specify system library paths, colon separated" Sets CONFIG_TCC_LIBPATHS --crtprefix=... specify location of crt?.o" Sets CONFIG_TCC_CRTPREFIX --elfinterp=... specify elf interpreter" Sets CONFIG_TCC_ELFINTERP Also the CONFIG_TCC_XXX were renamed to make them look more consistent. Also move the elf_interp definitions to tcc.h.
* Accept colon separated paths with -L and -Igrischka2011-08-011-3/+8
| | | | | | | | | | | | | | | | | | This allows passing colon separated paths to tcc_add_library_path tcc_add_sysinclude_path tcc_add_include_path Also there are new configure variables CONFIG_TCC_LIBPATH CONFIG_TCC_SYSINCLUDE_PATHS which define the lib/sysinclude paths all in one and can be overridden from configure/make For TCC_TARGET_PE semicolons (;) are used as separators Also, \b in the path string is replaced by s->tcc_lib_path (CONFIG_TCCDIR rsp. -B option)
* make: create native tcc from separate objectsgrischka2011-07-141-4/+3
| | | | | | | | | | | | | | | | | | | | | | | This was already possible using make NOTALLINONE=1 and is now the default. To build as previously from one big source, use make ONE_SOURCE=1 Cross compilers are still build from one source because using separate objects requires separate build directories one per platform which currently is not (yet) supported by the makefile. We could probably use gnu-makeish target variables like $(I386_CROSS): OUTDIR=build/i386 $(X64_CROSS): OUTDIR=build/x86-64 and so on ... Also NEED_FLOAT_TYPES for arm-gen is removed. It was about variables that are referenced from outside (libtcc, tccgen). We could declare them in tcc.h (as with reg_classes) or have them twice in arm-gen.c. I chose option 2.
* Revert "Make examples' shebang use target tcc bindir path"Thomas Preud'homme2011-07-071-10/+4
| | | | This reverts commit cb2138f8b098feb1b51a407343a4b99e25d5b506.
* Make examples' shebang use target tcc bindir pathThomas Preud'homme2011-06-181-4/+10
| | | | | | Use @BINDIR@ in shebang of examples to put the right path on the target system. That is, use #!/usr/local/bin/tcc if tcc is installed in /usr/local/bin and #!/usr/bin/tcc if tcc is installed in /usr/bin/tcc.
* Default to create progs with symbols (incl. debug)Thomas Preud'homme2011-06-171-4/+8
| | | | | | | * Set CFLAGS entirely in configure if not already set. * Compile bcheck.c with the same flags as the other source files * Don't strip binaries by default (GB are cheap now) but provide a --strip-binaries option in configure script.
* make test work when LIBTCC1 not definedThomas Preud'homme2011-05-171-0/+2
| | | | | Make libtest depends on LIBTCC1 instead of ../libtcc1.a and define LIBTCC1 to $(TOP)/$(LIBTCC1) if LIBTCC1 is defined
* make clean work when LIBTCC1 not definedThomas Preud'homme2011-05-141-0/+2
| | | | | Don't call make -C lib clean if LIBTCC1 is not defined, else make clean fails (for example of arm).
* Makefile: respect LDFLAGS (set via --extra-ldflags=)Sergei Trofimovich2011-01-041-2/+2
| | | | Signed-off-by: Sergei Trofimovich <st@anti-virus.by>
* make: fix cannot find -ltcc with --disable-rpathHenry Kroll III2010-12-211-2/+1
|
* make: fix install with CC=tcc and potential link problemHenry Kroll III2010-12-201-1/+6
|
* configure: add --disable-rpath option (Fedora)Henry Kroll III2010-12-201-0/+4
|
* trim unnecessary bits from my previous 3 commitsHenry Kroll III2010-12-051-2/+1
|
* make: i386/libtcc1.a for i386-tcc (x86_64 to i386 cross)Henry Kroll III2010-12-051-2/+10
|
* make: cross compilers exist before using them (fixes parallel make)Henry Kroll III2010-12-041-1/+2
|
* make: new lib/Makefile for libtcc1.a on more platformsgrischka2010-12-041-198/+135
| | | | | | win32/64 cross-compilers now build libtcc1.a and install it together with the windows headers in a 'win32' sub-directory of TCCDIR.
* needs lib path on bcheck.o fixes undefined symbol '__try__'Henry Kroll III2010-12-021-1/+1
|
* Makefile: fix clean target, bcheck, add commentsHenry Kroll III2010-12-021-6/+14
|
* split cross libtcc1.a to separate directoriesHenry Kroll III2010-12-021-106/+147
|
* Makefile: cleanup leftovers on cross build. really works nowHenry Kroll III2010-11-301-0/+1
|
* Makefile: fix typo and resulting workaroundHenry Kroll III2010-11-301-2/+2
|
* Makefile: fix Linux cross install, cleanupHenry Kroll III2010-11-301-6/+6
|
* tccpe.c: Makefile: --enable-cross win64 cross library buildHenry Kroll III2010-11-301-7/+19
|
* make CC=tcc install: fixes strip:tcc: File format not recognizedHenry Kroll III2010-11-301-1/+2
|
* Makefile: Add .PHONY targetsHenry Kroll III2010-11-301-0/+2
|
* Makefile: Put i386-win32-tcc back into --enable-cross installHenry Kroll III2010-11-301-1/+1
|
* Makefile: build --config-cross libtcc1.a directly to win32/libHenry Kroll III2010-11-301-7/+8
|
* Remove unnecessary $(PROGS_CROSS) from non-cross builds.Henry Kroll III2010-11-291-1/+0
|
* Makefile: TCC=tccHenry Kroll III2010-11-281-1/+1
|
* Makefile: --enable-cross on x86_64 simplifiedHenry Kroll III2010-11-281-27/+11
|
* Makefile: x86_64 win32-cross add clean: targetHenry Kroll III2010-11-061-4/+6
|
* Makefile: edit commentsHenry K2010-10-291-2/+1
|
* Makefile: cross-copiler tcc1.def is now libtcc1.a, ignore mv errorsHenry Kroll III2010-10-291-7/+7
|
* Force gcc for x86_64 --enable-crossHenry Kroll III2010-10-281-1/+1
|
* Add info file creation into tcc build processThomas Preud'homme2010-09-101-3/+8
| | | | Add info file creation in tcc Makefile
* Don't load libtcc1 on arch where it doesn't existThomas Preud'homme2010-05-011-0/+1
| | | | | | | ARM architecture doesn't have any libtcc1 implementation but tcc load libtcc1.a in all case. This patch add a conditional preprocessor instruction to load libtcc1.a only when there is an implementation for the target architecture.