On Tue, 29 Oct 2002, Andy Dougherty wrote: > Here's my proposal for stage one: This patch is intended to define > explicitly what the different compiler and linker commands and flags > are, what they are supposed to mean, and how they are to be used. > > Does this set of variables look sufficient for everyone, and are the > definitions clear? If so, the next step is to put the appropriate values > in the hints files and re-work Configure and the Makefiles to use them > consistently.
Of course it helps to include the patch :-(. diff -r -u parrot-orig/config/init/data.pl parrot-andy/config/init/data.pl --- parrot-orig/config/init/data.pl Thu Sep 12 10:39:22 2002 +++ parrot-andy/config/init/data.pl Tue Oct 29 11:44:55 2002 @@ -22,42 +22,70 @@ # Compiler -- used to turn .c files into object files. # (Usually cc or cl, or something like that.) + # Compile C source files with + # $cc $ccflags $cc_inc $cc_debug $cc_warn $cc_c file.c + # If you want this object file to be part of a shared library, + # then you need to compile instead with + # $cc $ccflags $cc_inc $cc_debug $cc_warn $cc_dlflags $cc_c file.c + # Assume the compiler will put the object file in file$o. + # These Unix-ish defaults should be overridden by hints files + # as necessary for Win32, VMS, and other non-Unix systems. cc => $Config{cc}, ccflags => $Config{ccflags}, + cc_c => '-c' # Empty for VMS. + cc_inc => "-I./include", # How to pick up parrot includes. + cc_debug => '-g', + cc_warn => '', + cc_dlflags => $Config{cccdlflags}, # Flags necessary to compile + # this file for use in a shared library. + cc_o_out => '-o ', # cc object output file. Don't use this; + # it's not portable. + cc_exe_out => '-o ', # cc executable output file. Don't use this. + # Use $link to create executables. + cc_ldflags => '', # prefix for ldflags (necessary for Win32) + # Huh? This isn't used anywhere. + # Don't use this. I don't know what + # it means. # Linker, used to link object files (plus libraries) into # an executable. It is usually $cc on Unix-ish systems. # VMS and Win32 might use "Link". # Perl5's Configure doesn't distinguish linking from loading, so # make a reasonable guess at defaults. + # Create an executable with + # $link $linkflags $link_debug ${link_out}file${exe} file${o} $libs + # If you have multiple object files, VMS needs to have them + # separated by commas, like this: (and all on one line) + # $link $linkflags $link_debug ${link_out}file${exe} \ + # file1${o},file2${o} $libs link => $Config{cc}, linkflags => $Config{ldflags}, + link_debug => '', + link_out => '-o ', # linker output file. Keep the trailing + # space for Unix-like linkers. # ld: Tool used to build dynamically loadable libraries. Often # $cc on Unix-ish systems, but apparently sometimes it's ld. + # The exact usage has not been determined yet. ld => $Config{ld}, ldflags => $Config{ldflags}, + ld_out => '-o ', # ld output file. Keep the trailing + # space for Unix-like linkers. + ld_debug => '', # include debug info in executable + ld_shared => $Config{lddlflags}, # Any flags specifically + # needed to instruct ld to create + # a shared libary. + ld_shared_flags=> '', # What is this, exactly? For GNU ld, it was + # '-Wl,-soname,libparrot$(SO)' libs => $Config{libs}, - cc_inc => "-I./include", - cc_debug => '-g', - link_debug => '', - cc_warn => '', o => '.o', # object files extension - so => '.so', # dynamic link library or shared object extension + so => '.so', # dynamic link library or + # shared object extension a => '.a', # library or archive extension exe => $Config{_exe}, # executable files extension - cc_o_out => '-o ', # cc object output file - cc_exe_out => '-o ', # cc executable output file (different on Win32) - - cc_ldflags => '', # prefix for ldflags (necessary for Win32) - ld_out => '-o ', # ld output file - ld_debug => '', # include debug info in executable - ld_shared => $Config{lddlflags}, - ld_shared_flags=> '', # What is this, exactly? For GNU ld, it was - # '-Wl,-soname,libparrot$(SO)' # should we have a dependancy upon arc to generate .a's? blib_lib_libparrot_a => 'blib/lib/libparrot$(A)', -- Andy Dougherty [EMAIL PROTECTED]