diff --git a/compiler/Makefile b/compiler/Makefile index 8d455ce58b..aa6d168655 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -1,5 +1,5 @@ # -# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/04/29] +# Don't edit, this file is generated by FPCMake Version 2.0.0 [2006/05/13] # default: all MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos powerpc-linux powerpc-netbsd powerpc-macos powerpc-darwin powerpc-morphos sparc-linux sparc-netbsd sparc-solaris x86_64-linux x86_64-freebsd x86_64-win64 arm-linux arm-palmos arm-wince powerpc64-linux @@ -316,6 +316,15 @@ ifneq ($(findstring 1.0.,$(FPC_VERSION)),) override LOCALOPT+=-dUNIX endif endif +REVINC:=$(wildcard revision.inc) +ifneq ($(REVINC),) +override LOCALOPT+=-dREVINC +ifeq ($(REVSTR),) +SVNVERSION:=$(wildcard svnversion$(EXEEXT)) +REVSTR:=$(value ')$(shell svnversion .)$(value ') +export REVSTR +endif +endif override LOCALOPT+=-d$(PPC_TARGET) -dGDB -dBROWSERLOG ifeq ($(PPC_TARGET),i386) override LOCALOPT+=-Fux86 @@ -2772,6 +2781,9 @@ msg: msgtxt.inc $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \ $(wildcard systems/*.pas) $(wilcard systems/*.inc) \ $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc) +ifneq ($(REVSTR),) + $(ECHO) "'$(REVSTR)'" > revision.inc +endif $(COMPILER) pp.pas $(EXECPPAS) $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME) diff --git a/compiler/Makefile.fpc b/compiler/Makefile.fpc index b6d423175f..4d8c689f99 100644 --- a/compiler/Makefile.fpc +++ b/compiler/Makefile.fpc @@ -154,6 +154,16 @@ override LOCALOPT+=-dUNIX endif endif +REVINC:=$(wildcard revision.inc) +ifneq ($(REVINC),) +override LOCALOPT+=-dREVINC +ifeq ($(REVSTR),) +SVNVERSION:=$(wildcard svnversion$(EXEEXT)) +REVSTR:=$(shell svnversion .) +export REVSTR +endif +endif + # set correct defines (-d$(CPU_TARGET) is automaticly added in makefile.fpc) override LOCALOPT+=-d$(PPC_TARGET) -dGDB -dBROWSERLOG @@ -342,6 +352,9 @@ msg: msgtxt.inc $(EXENAME) : $(wildcard *.pas) $(wildcard *.inc) msg \ $(wildcard systems/*.pas) $(wilcard systems/*.inc) \ $(wildcard $(PPC_TARGET)/*.pas) $(wildcard $(PPC_TARGET)/*.inc) +ifneq ($(REVSTR),) + $(ECHO) "'$(REVSTR)'" > revision.inc +endif $(COMPILER) pp.pas $(EXECPPAS) $(MOVE) $(COMPILER_TARGETDIR)/$(PPEXENAME) $(EXENAME) diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg index 4a8a545d0b..2d5b326c35 100644 --- a/compiler/msg/errore.msg +++ b/compiler/msg/errore.msg @@ -2180,8 +2180,8 @@ option_config_is_dir=11040_F_Config file $1 is a directory # Logo (option -l) # option_logo=11023_[ -Free Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCPU -Copyright (c) 1993-2005 by Florian Klaempfl +Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPCCPU +Copyright (c) 1993-2006 by Florian Klaempfl ] # diff --git a/compiler/msgidx.inc b/compiler/msgidx.inc index d74e0c8943..b72aa8970f 100644 --- a/compiler/msgidx.inc +++ b/compiler/msgidx.inc @@ -679,7 +679,7 @@ const option_info=11024; option_help_pages=11025; - MsgTxtSize = 39882; + MsgTxtSize = 39886; MsgIdxMax : array[1..20] of longint=( 24,75,220,60,62,47,100,22,135,60, diff --git a/compiler/msgtxt.inc b/compiler/msgtxt.inc index 9b2a81545a..d1ef564816 100644 --- a/compiler/msgtxt.inc +++ b/compiler/msgtxt.inc @@ -729,8 +729,9 @@ const msgtxt : array[0..000166,1..240] of char=( '11035_D_found source file name "$1"'#000+ '11039_E_Unknown code page'#000+ '11040_F_Config file $1 is a directory'#000+ - '11023_Free Pascal Compiler version $FPCVERSION [$FPCDATE] for $FPCCPU'#010+ - 'Copyright (c) 1993-2005 by Floria','n Klaempfl'#000+ + '11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+ + 'CPU'#010+ + 'Copyright (c) 1993-2006 by Fl','orian Klaempfl'#000+ '11024_Free Pascal Compiler version $FPCVERSION'#010+ #010+ 'Compiler Date : $FPCDATE'#010+ @@ -742,8 +743,8 @@ const msgtxt : array[0..000166,1..240] of char=( 'Supported CPU instruction sets:'#010+ ' $INSTRUCTIONSETS'#010+ #010+ - 'Supported FPU instruction sets:'#010+ - ' $F','PUINSTRUCTIONSETS'#010+ + 'Supported FPU instruction sets:'#010, + ' $FPUINSTRUCTIONSETS'#010+ #010+ 'Supported Optimizations:'#010+ ' $OPTIMIZATIONS'#010+ @@ -753,29 +754,29 @@ const msgtxt : array[0..000166,1..240] of char=( #010+ 'Report bugs,suggestions etc to:'#010+ ' bugrep@freepascal.org'#000+ - '11025_**0*_p','ut + after a boolean switch option to enable it, - to di'+ + '11025_**','0*_put + after a boolean switch option to enable it, - to di'+ 'sable it'#010+ '**1a_the compiler doesn'#039't delete the generated assembler file'#010+ '**2al_list sourcecode lines in assembler file'#010+ '**2an_list node info in assembler file'#010+ - '*L2ap_use pipes instead of c','reating temporary assembler files'#010+ + '*L2ap_use pipes instead ','of creating temporary assembler files'#010+ '**2ar_list register allocation/release info in assembler file'#010+ '**2at_list temp allocation/release info in assembler file'#010+ '**1A_output format:'#010+ '**2Adefault_use default assembler'#010+ - '3*2Aas_assemble using GNU AS'#010, + '3*2Aas_assemble using GNU',' AS'#010+ '3*2Anasmcoff_coff (Go32v2) file using Nasm'#010+ '3*2Anasmelf_elf32 (Linux) file using Nasm'#010+ '3*2Anasmwin32_Win32 object file using Nasm'#010+ '3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+ '3*2Awasm_obj file using Wasm (Watcom)'#010+ - '3*2Anasmobj_obj file usin','g Nasm'#010+ + '3*2Anasmobj_obj file ','using Nasm'#010+ '3*2Amasm_obj file using Masm (Microsoft)'#010+ '3*2Atasm_obj file using Tasm (Borland)'#010+ '3*2Aelf_elf32 (Linux) using internal writer'#010+ '3*2Acoff_coff (Go32v2) using internal writer'#010+ '3*2Apecoff_pecoff (Win32) using internal writer'#010+ - '4*2Aas_assemble ','using GNU AS'#010+ + '4*2Aas_assem','ble using GNU AS'#010+ '6*2Aas_Unix o-file using GNU AS'#010+ '6*2Agas_GNU Motorola assembler'#010+ '6*2Amit_MIT Syntax (old GAS)'#010+ @@ -783,27 +784,27 @@ const msgtxt : array[0..000166,1..240] of char=( 'A*2Aas_assemble using GNU AS'#010+ 'P*2Aas_assemble using GNU AS'#010+ 'S*2Aas_assemble using GNU AS'#010+ - '**1b_generat','e browser info'#010+ + '**1b_gen','erate browser info'#010+ '**2bl_generate local symbol info'#010+ '**1B_build all modules'#010+ '**1C_code generation options:'#010+ '**2Cc_set default calling convention to '#010+ '**2CD_create also dynamic library (not supported)'#010+ - '**2Ce_Compilation with emulated floatin','g point opcodes'#010+ + '**2Ce_Compilation with emulated flo','ating point opcodes'#010+ '**2Cf_Select fpu instruction set to use, see fpc -i for possible va'+ 'lues'#010+ '**2Cg_Generate PIC code'#010+ '**2Ch_ bytes heap (between 1023 and 67107840)'#010+ '**2Ci_IO-checking'#010+ '**2Cn_omit linking stage'#010+ - '**2Co_check overflow of intege','r operations'#010+ + '**2Co_check overflow of in','teger operations'#010+ '**2Cp_select instruction set, see fpc -i for possible values'#010+ '**2Cr_range checking'#010+ '**2CR_verify object method call validity'#010+ '**2Cs_set stack size to '#010+ '**2Ct_stack checking'#010+ '**2CX_create also smartlinked library'#010+ - '**1d_def','ines the symbol '#010+ + '**1d','_defines the symbol '#010+ '**1D_generate a DEF file'#010+ '**2Dd_set description to '#010+ '**2Dv_set DLL version to '#010+ @@ -811,26 +812,26 @@ const msgtxt : array[0..000166,1..240] of char=( '**1e_set path to executable'#010+ '**1E_same as -Cn'#010+ '**1F_set file names and paths:'#010+ - '**2Fa[,y]_for a program l','oad first units and [y] before uses '+ + '**2Fa[,y]_for a progr','am load first units and [y] before uses '+ 'is parsed'#010+ '**2Fc_sets input codepage to '#010+ '**2FD_sets the directory where to search for compiler utilities'#010+ '**2Fe_redirect error output to '#010+ '**2FE_set exe/unit output path to '#010+ - '**2Fi','_adds to include path'#010+ + '**2F','i_adds to include path'#010+ '**2Fl_adds to library path'#010+ '**2FL_uses as dynamic linker'#010+ '**2Fo_adds to object path'#010+ '**2Fr_load error message file '#010+ '**2Fu_adds to unit path'#010+ - '**2FU_set unit output path to , overr','ides -FE'#010+ + '**2FU_set unit output path to , o','verrides -FE'#010+ '*g1g_generate debugger information:'#010+ '*g2gc_generate checks for pointers'#010+ '*g2gd_use dbx'#010+ '*g2gg_use gsym'#010+ '*g2gh_use heap trace unit (for memory leak debugging)'#010+ '*g2gl_use line info unit to show more info for backtraces'#010+ - '*g2gv_generates pro','grams traceable with valgrind'#010+ + '*g2gv_generates',' programs traceable with valgrind'#010+ '*g2gw_generate dwarf debugging info'#010+ '**1i_information'#010+ '**2iD_return compiler date'#010+ @@ -838,51 +839,51 @@ const msgtxt : array[0..000166,1..240] of char=( '**2iSO_return compiler OS'#010+ '**2iSP_return compiler processor'#010+ '**2iTO_return target OS'#010+ - '**2iTP_return tar','get processor'#010+ + '**2iTP_return',' target processor'#010+ '**1I_adds to include path'#010+ '**1k_Pass to the linker'#010+ '**1l_write logo'#010+ '**1M_set language mode to '#010+ '**2Mfpc_free pascal dialect (default)'#010+ '**2Mobjfpc_switch some Delphi 2 extensions on'#010+ - '**2Mdelphi_tries to be Delphi',' compatible'#010+ + '**2Mdelphi_tries to be De','lphi compatible'#010+ '**2Mtp_tries to be TP/BP 7.0 compatible'#010+ '**2Mgpc_tries to be gpc compatible'#010+ '**2Mmacpas_tries to be compatible to the macintosh pascal dialects'#010+ '**1n_don'#039't read the default config file'#010+ '**1N_node tree optimizations'#010+ - '**2Nu_unroll l','oops'#010+ + '**2Nu_unro','ll loops'#010+ '**1o_change the name of the executable produced to '#010+ '**1O_optimizations:'#010+ '**2O-_disable optimizations'#010+ '**2O1_level 1 optimizations (quick and debugger friendly)'#010+ '**2O2_level 2 optimizations (-O1 + quick optimizations)'#010+ - '**2O3_level ','3 optimizations (-O2 + slow optimizations)'#010+ + '**2O3_le','vel 3 optimizations (-O2 + slow optimizations)'#010+ '**2Oa=_set alignment'#010+ '**2Oo[NO]_enable or disable optimizations, see fpc -i for possible '+ 'values'#010+ '**2Op_set target cpu for optimizing, see fpc -i for possible values'+ #010+ - '**2Os_generate smaller',' code'#010+ + '**2Os_generate sma','ller code'#010+ '**1pg_generate profile code for gprof (defines FPC_PROFILE)'#010+ '**1R_assembler reading style:'#010+ '**2Rdefault_use default assembler'#010+ '3*2Ratt_read AT&T style assembler'#010+ '3*2Rintel_read Intel style assembler'#010+ - '6*2RMOT_read motorola style assemble','r'#010+ + '6*2RMOT_read motorola style asse','mbler'#010+ '**1S_syntax options:'#010+ '**2S2_same as -Mobjfpc'#010+ '**2Sc_supports operators like C (*=,+=,/= and -=)'#010+ '**2Sa_include assertion code.'#010+ '**2Sd_same as -Mdelphi'#010+ '**2Se_error options. is a combination of the following:'#010+ - '**3*_ : compiler stops',' after the errors (default is 1)'#010+ + '**3*_ : compiler s','tops after the errors (default is 1)'#010+ '**3*_w : compiler stops also after warnings'#010+ '**3*_n : compiler stops also after notes'#010+ '**3*_h : compiler stops also after hints'#010+ '**2Sg_allow LABEL and GOTO'#010+ '**2Sh_Use ansistrings'#010+ - '**2Si_support C++ styled INL','INE'#010+ + '**2Si_support C++ styled',' INLINE'#010+ '**2Sk_load fpcylix unit'#010+ '**2SI_set interface style to '#010+ '**3SIcom_COM compatible interface (default)'#010+ @@ -890,20 +891,20 @@ const msgtxt : array[0..000166,1..240] of char=( '**2Sm_support macros like C (global)'#010+ '**2So_same as -Mtp'#010+ '**2Sp_same as -Mgpc'#010+ - '**2Ss_constructor ','name must be init (destructor must be done)'#010+ + '**2Ss_construc','tor name must be init (destructor must be done)'#010+ '**2St_allow static keyword in objects'#010+ '**1s_don'#039't call assembler and linker'#010+ '**2sh_Generate script to link on host'#010+ '**2st_Generate script to link on target'#010+ - '**2sr_Skip register allocation phase (use w','ith -alr)'#010+ + '**2sr_Skip register allocation phase (u','se with -alr)'#010+ '**1T_Target operating system:'#010+ '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+ '3*2Tfreebsd_FreeBSD'#010+ '3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+ '3*2Tlinux_Linux'#010+ '3*2Tnetbsd_NetBSD'#010+ - '3*2Tnetware_Novell Netware Module (clib)'#010+ - '3*2T','netwlibc_Novell Netware Module (libc)'#010+ + '3*2Tnetware_Novell Netware Module (clib)'#010, + '3*2Tnetwlibc_Novell Netware Module (libc)'#010+ '3*2Topenbsd_OpenBSD'#010+ '3*2Tos2_OS/2 / eComStation'#010+ '3*2Tsunos_SunOS/Solaris'#010+ @@ -911,7 +912,7 @@ const msgtxt : array[0..000166,1..240] of char=( '3*2Twdosx_WDOSX DOS extender'#010+ '3*2Twin32_Windows 32 Bit'#010+ '3*2Twince_Windows CE'#010+ - '4*2Tlinux_Linu','x'#010+ + '4*2Tlinux_','Linux'#010+ '6*2Tamiga_Commodore Amiga'#010+ '6*2Tatari_Atari ST/STe/TT'#010+ '6*2Tlinux_Linux/m68k'#010+ @@ -920,7 +921,7 @@ const msgtxt : array[0..000166,1..240] of char=( 'A*2Tlinux_Linux'#010+ 'A*2Twince_Windows CE'#010+ 'P*2Tamiga_AmigaOS on PowerPC'#010+ - 'P*2Tdarwin_Darwin and MacOS X on PowerPC',#010+ + 'P*2Tdarwin_Darwin and MacOS X on Pow','erPC'#010+ 'P*2Tlinux_Linux on PowerPC'#010+ 'P*2Tmacos_MacOS (classic) on PowerPC'#010+ 'P*2Tmorphos_MorphOS'#010+ @@ -929,47 +930,47 @@ const msgtxt : array[0..000166,1..240] of char=( '**1U_unit options:'#010+ '**2Un_don'#039't check the unit name'#010+ '**2Ur_generate release unit files'#010+ - '**2Us_compile a syste','m unit'#010+ + '**2Us_compile a s','ystem unit'#010+ '**1v_Be verbose. is a combination of the following letters:'#010+ '**2*_e : Show errors (default) 0 : Show nothing (except errors)'#010+ '**2*_w : Show warnings u : Show unit info'#010+ - '**2*_n : Show notes t :',' Show tried/used files'#010+ + '**2*_n : Show notes ',' t : Show tried/used files'#010+ '**2*_h : Show hints c : Show conditionals'#010+ '**2*_i : Show general info d : Show debug info'#010+ '**2*_l : Show linenumbers r : Rhide/GCC compatibility mode'#010+ - '**2*_a : Show everything ',' x : Executable info (Win32 only'+ + '**2*_a : Show everything ',' x : Executable info (Win32 only'+ ')'#010+ '**2*_b : Write file names messages with full path'#010+ '**2*_v : write fpcdebug.txt with p : Write tree.log with parse tre'+ 'e'#010+ '**2*_ lots of debugging info'#010+ '3*1W_Win32-like target options'#010+ - '3*2WB_Create ','a relocatable image'#010+ + '3*2WB_Cre','ate a relocatable image'#010+ '3*2WB_Set Image base to Hexadecimal value'#010+ '3*2WC_Specify console type application'#010+ '3*2WD_Use DEFFILE to export functions of DLL or EXE'#010+ '3*2WF_Specify full-screen type application (OS/2 only)'#010+ - '3*2WG_Specify graphic typ','e application'#010+ + '3*2WG_Specify graphic',' type application'#010+ '3*2WN_Do not generate relocation code (necessary for debugging)'#010+ '3*2WR_Generate relocation code'#010+ 'P*2WC_Specify console type application (MacOS only)'#010+ 'P*2WG_Specify graphic type application (MacOS only)'#010+ - 'P*2WT_Specify tool type app','lication (MPW tool, MacOS only)'#010+ + 'P*2WT_Specify tool type',' application (MPW tool, MacOS only)'#010+ '**1X_executable options:'#010+ '**2Xc_pass --shared to the linker (Unix only)'#010+ '**2Xd_don'#039't use standard library search path (needed for cross com'+ 'pile)'#010+ - '**2XD_try to link units dynamic (defines FPC_LINK_DYNAMI','C)'#010+ + '**2XD_try to link units dynamic (defines FPC_LINK_DY','NAMIC)'#010+ '**2Xm_generate link map'#010+ '**2XM_set the name of the '#039'main'#039' program routine (default i'+ 's '#039'main'#039')'#010+ '**2XP_prepend the binutils names with the prefix '#010+ '**2Xr_set library search path to (needed for cross compile)'#010+ - '**2Xs_strip all sy','mbols from executable'#010+ + '**2Xs_strip al','l symbols from executable'#010+ '**2XS_try to link units static (default) (defines FPC_LINK_STATIC)'#010+ '**2Xt_link with static libraries (-static is passed to linker)'#010+ '**2XX_try to link units smart (defines FPC_LINK_SMART)'#010+ '**1*_'#010+ - '**1?_shows this ','help'#010+ + '**1?_shows t','his help'#010+ '**1h_shows this help without waiting'#000 ); diff --git a/compiler/version.pas b/compiler/version.pas index ca5b6f4ab5..fa164161e9 100644 --- a/compiler/version.pas +++ b/compiler/version.pas @@ -86,7 +86,11 @@ end; function full_version_string:string; begin - full_version_string := version_nr+'.'+release_nr+'.'+patch_nr+minorpatch; + full_version_string := version_nr+'.'+release_nr+'.'+patch_nr+minorpatch +{$ifdef REVINC} + +'-r'+{$i revision.inc} +{$endif REVINC} + ; end; end.