Commit Graph

1093 Commits

Author SHA1 Message Date
Jonas Maebe
f6ddabde85 + "raw" resource support for the JVM target. The "raw" means that no
resource compilation happens and that the standard FPC resource
    helpers are not available. What happens is that all files specified
    in {$r xxx} statements are packed together into an <appname>.jar
    file, under the namespace "org.freepascal.rawresources". They
    can be loaded using the java.lang.Class.getResource/getResourceAsStream()
    api

git-svn-id: branches/jvmbackend@18776 -
2011-08-20 08:34:57 +00:00
Jonas Maebe
35cb8516ff + support for detecting varargs functions -> mark their open array
parameters as const, since the callee cannot modify the array
    itself in that case

git-svn-id: branches/jvmbackend@18678 -
2011-08-20 08:23:51 +00:00
Jonas Maebe
e30319561f * correctly set the external name of nested classes (should not
include the parent class names, those are added by the compiler)

git-svn-id: branches/jvmbackend@18677 -
2011-08-20 08:23:45 +00:00
Jonas Maebe
6dd7d9db41 * generate a declaration with an dynamic array and one with an open array
parameter in case of array parameters (and in case of constructors,
    make the open array as "const"; heuristic, not guaranteed 100% safe!)
  + support for generating include files rather than full units (e.g., for
    the system unit types), -i option
  * don't generate imports for anonymous inner types ($1 etc)
  * mark routines with 'package' visibility as 'public', because some packages
    are split over multiple units (system unit and jdk import unit) -> allows
    using these routines in illegal ways, which will result in run time errors
  + support to also select individual classes with the -x/-a parameters
  + add "virtual" modifier to methods where appropriate (so the compiler won't
    force it automatically anymore)

git-svn-id: branches/jvmbackend@18439 -
2011-08-20 07:59:40 +00:00
Jonas Maebe
2a64e411ce + generate external names for methods imported under a different name
* switched to mode delphi to avoid problems with nested types in child
    classes having the same name as nested types in the parent
  * generate skeleton classes for all internal classes that have "package"
    visibility so you can inherit from them (full definitions are not
    possible because that causes circular dependencies)
  -> the entire official JDK 1.5 interface, except for java.awt.Dialog
     (circular dependency with java.awt.Window) can now be generated using
    -a java.awt.Dialog -a sun. -a com.sun. -a apple. -protected java. javax. org.
    (on Mac OS X; the "-a apple." probably has to be changed into something
     else on other platforms)

git-svn-id: branches/jvmbackend@18409 -
2011-08-20 07:57:17 +00:00
Jonas Maebe
8199b2c6a9 * first version of javapp that can create a compilable Pascal import
unit for at least java.lang.*, java.util.* java.io.* and java.security.*,
    using the following command line paramters:
    -a sun. -a com.sun. -a javax. -protected java.lang. java.util. java.io. java.security. -o java_base

git-svn-id: branches/jvmbackend@18405 -
2011-08-20 07:56:58 +00:00
Jonas Maebe
367daf06ea + javap source code from JDK6, we be used to create javapp that
dumps Java classes in Pascal import unit format

git-svn-id: branches/jvmbackend@18404 -
2011-08-20 07:56:50 +00:00
Jonas Maebe
2e9e005647 * don't add a utils prefix when the target cpu is the JVM, because the
Jasmin assembler we use is a Java program, so the "assembler binary" is
    java itself (which is a native program for the current host in any case)

git-svn-id: branches/jvmbackend@18350 -
2011-08-20 07:50:08 +00:00
Jonas Maebe
94ed2ac649 + jvm/java target support
git-svn-id: branches/jvmbackend@18311 -
2011-08-20 07:37:42 +00:00
Jonas Maebe
cbb3e5700d * now also includes univint directory for Darwin if necessary, not sure
why it wasn't in the version committed int r18251

git-svn-id: trunk@18264 -
2011-08-18 18:09:33 +00:00
Jonas Maebe
f6fbc17463 * fpdoc depends on fcl-base
* fcl-base depends on univint for Darwin

git-svn-id: trunk@18251 -
2011-08-17 15:31:28 +00:00
pierre
1c2a5f9819 + Update all Makefile's modified by
change in utils/fpcm/fpcmake.ini in prevous commit.

  Adapt also other files to that change:

  * compiler/globals.pas: Replace $FPCTARGET by os_string if
  tf_use_8_3 flag is set for target_info also.

  * tests/Makefile.fpc: Modify TEST_TARGETSUFFIX in the same way
  as TARGETSUFFIX was modified in previous commit.

  * tests/utils/dotest.pp:
    + New variable UseOSOnly, set to true if only target OS name
    should be used for subdirectories.

git-svn-id: trunk@18228 -
2011-08-16 20:10:19 +00:00
pierre
68d61c69e7 * Only use OS_TARGET for TARGET_SUFFIX if target is in LIMIT83fs list
* Update fpcmake.inc

git-svn-id: trunk@18227 -
2011-08-16 20:06:52 +00:00
sekelsenmat
83b2948ec1 makeskel: Adds more output info in case of error and fixes compilation through Lazarus (by adding +)
git-svn-id: trunk@18219 -
2011-08-16 13:27:35 +00:00
michael
6b2a566fb1 * Override correct seek/setsize version (Patch by Chad B)
git-svn-id: trunk@18198 -
2011-08-13 19:15:20 +00:00
marco
043e9b2ec2 * Trunk version to 2.7.1
git-svn-id: trunk@18075 -
2011-08-03 13:59:33 +00:00
marco
39d7bb511d * Regenned all makefiles before 2.6.x branching.
git-svn-id: trunk@18073 -
2011-08-03 13:41:52 +00:00
Jonas Maebe
b4328c71a6 * also mention ARM as supported architecture for mach-o
git-svn-id: trunk@18072 -
2011-08-02 22:14:52 +00:00
Jonas Maebe
b4a6e803d2 * fixed cosmetic error in help after r18070
git-svn-id: trunk@18071 -
2011-08-02 22:13:54 +00:00
Jonas Maebe
ec8c7b4888 + when compiling for Darwin/ARM, pass the subarchitecture to the linker.
The old linker option to accept object files from all subarchitecture
    types no longer works.
  + support for subarchitectures in fcl-res/fpcres

git-svn-id: trunk@18070 -
2011-08-02 20:41:39 +00:00
Mattias Gaertner
391f268bbb instantfpc: fixed compilation for 2.4.4
git-svn-id: trunk@18029 -
2011-07-28 06:56:40 +00:00
joost
08ee418513 * Reverted r17969, now fpmake distclean is implemented
git-svn-id: trunk@17986 -
2011-07-13 20:25:02 +00:00
joost
595eadccb6 * Do not cleanup fpmake executable on distclean anymore. To make it possible
to cleanup more than one target using distclean.
 * Added new fpmakeclean target to makefiles which does a cleanall and clears
the fpmake executables

git-svn-id: trunk@17969 -
2011-07-10 14:27:49 +00:00
joost
28fb5b21a3 * Always add -n when compiling fpmake when not cross-compiling
git-svn-id: trunk@17965 -
2011-07-09 16:08:06 +00:00
Mattias Gaertner
5ca0871033 instantfpc: example for mode directive
git-svn-id: trunk@17964 -
2011-07-09 08:40:27 +00:00
michael
6ad0a9cc26 * Improved interpretation of shebang line under linux. Added --set-cache argument
git-svn-id: trunk@17951 -
2011-07-07 19:03:08 +00:00
michael
718fc1ccd1 * Force .pas extension if extension not in .pas .pp .lpr
git-svn-id: trunk@17947 -
2011-07-06 20:16:45 +00:00
michael
31df8d516b * Allow .cgi as extension
git-svn-id: trunk@17946 -
2011-07-06 20:14:30 +00:00
michael
1726c0b14d * Force an extension on cache filename, so extension can be skipped in script name.
git-svn-id: trunk@17945 -
2011-07-06 19:47:47 +00:00
pierre
11b154b5d9 * Also for -Cg use for x86_64 solaris
git-svn-id: trunk@17818 -
2011-06-24 13:52:37 +00:00
florian
95b63aa583 * fix buildin on wince, resolves #19525
git-svn-id: trunk@17697 -
2011-06-08 17:43:28 +00:00
pierre
068b373015 * Fix to allow go32v2 compliation
git-svn-id: trunk@17670 -
2011-06-06 13:48:27 +00:00
joost
6f0e8bffcf * Do not pass -n when there is no cross-compilation.
git-svn-id: trunk@17654 -
2011-06-04 14:53:03 +00:00
joost
0e1f20773a * Move LoadCompilerDefaults and LoadGlobalDefaults to the fppkg package, so it can be used by other fppkg clients
git-svn-id: trunk@17652 -
2011-06-04 12:19:19 +00:00
joost
0cf1eeb45b * No need for the FPC_NATIVE define anymore. This define held the wrong
compiler for compiling fpmake and fpmkunit-bootstrap during cross-cpu
   compiles. (bug #19263) Now the proper compiler is determined by executing
   fpc -PB.

git-svn-id: trunk@17649 -
2011-06-03 11:35:38 +00:00
joost
b057c320da * Do not fail configfile generation when gcc is not found
* Give a nice warning when gcc is not executed properly

git-svn-id: trunk@17606 -
2011-05-29 20:37:25 +00:00
joost
898a4debca * When using a installed compiler to compile fpmake, do not pass -n to
the compiler. Bug #19412.

git-svn-id: trunk@17605 -
2011-05-29 19:58:21 +00:00
marco
3d86949990 * use new expression store for rvalue of constant declarations. Patch by Anton, Mantis 19403
git-svn-id: trunk@17543 -
2011-05-23 20:01:59 +00:00
joost
44a43c63da * Only export FPCFPMAKE when a suitable compiler is found, or else
it won't be detected when that compiler becomes available later in 
   the compile process. Bug #19263

git-svn-id: trunk@17500 -
2011-05-19 13:26:16 +00:00
michael
e99826618f * Moved fppkg units to package
git-svn-id: trunk@17446 -
2011-05-13 20:24:49 +00:00
michael
94cc1eef04 * Patch from Darius to fix 19348
git-svn-id: trunk@17440 -
2011-05-13 11:16:09 +00:00
joost
8847efb758 * To build fpmake while cross-compiling, use the compiler that is used
while cycling the compiler to build the native rtl. (bug 19263)

git-svn-id: trunk@17389 -
2011-05-01 16:48:56 +00:00
joost
b926c6984e * Added COMPILER_FPMAKE_UNITDIR to makefiles, with the path to the native
ppu's
 * When no native ppu's are found, search for them in the units_bs dir. So
   that it is possible to bootstrap fpmkunit

git-svn-id: trunk@17367 -
2011-04-25 14:34:12 +00:00
michael
d7f5842c2e * Wrong file extensions
git-svn-id: trunk@17365 -
2011-04-24 09:21:50 +00:00
michael
1f6695b28b * Added instantfpc
git-svn-id: trunk@17364 -
2011-04-24 09:20:35 +00:00
joost
a0f2ed6a13 * Added the FPCFPMAKE define which by default contains a compiler which
is build to compile for the target the system is running on. So that the
   fpmake files can be compiled for the native system while cross-compiling
 * Re-generated root and packages Makefile

git-svn-id: trunk@17356 -
2011-04-21 11:13:08 +00:00
florian
7f0d245ac2 * reintegrate avr branch into trunk, work on avr is less invasive than I thought so it can be continued in trunk
git-svn-id: trunk@17348 -
2011-04-19 20:17:52 +00:00
michael
cb3043b3a2 * Fixed 19068
git-svn-id: trunk@17235 -
2011-04-03 09:27:06 +00:00
joost
b67c3ad4c1 * Default fpcbin macro added
git-svn-id: trunk@17189 -
2011-03-27 12:28:06 +00:00
joost
538dd64283 * Use prefix instead of installation-dir
git-svn-id: trunk@17188 -
2011-03-27 12:27:44 +00:00