From: Per Sandberg <per.sandberg@bredband.net>
Subject: Re: Including C source in GNAT project for building library
Date: Thu, 24 Jan 2008 06:54:34 +0100
Date: 2008-01-24T06:54:34+01:00 [thread overview]
Message-ID: <oHVlj.18222$ND3.12746@newsfet17.ams> (raw)
In-Reply-To: <m2wspzaj41.fsf@mac.com>
Simon,
The project file looks ok to me but gnatmake only accepts Ada so you
need to use gprmake to use other languages.
/Per
Simon Wright wrote:
> This relates to building TASH as a library (static, libtash.a) using
> GNAT Project, as in GNAT-GPL-2007.
>
> As well as Ada source, this library needs two C-sourced units to act
> as wrappers for macros in the Tcl/Tk header files.
>
> I can do this by hand (obviously only for a static library) by doing
> this after gnatmake has done its part:
>
> gcc -c -g -O2 -I/usr/include tclmacro.c
> gcc -c -g -O2 -I/usr/include tkmacro.c
> ar -r lib/libtash.a tclmacro.o tkmacro.o
> ranlib lib/libtash.a
>
> but can't help feeling there should be a way to tell gnatmake to do
> this!
>
> So far I have
>
> with "../tash_options";
>
> project Build_Tash_Library is
>
> for Library_Name use "tash";
> for Languages use ("Ada","C");
> for Library_Interface use
> (
> "cargv",
> "chelper",
> "tash.arrays",
> "tash.file",
> "tash.file_io",
> "tash.float_arrays",
> "tash.float_lists",
> "tash.floats",
> "tash.integer_arrays",
> "tash.integer_lists",
> "tash.integers",
> "tash.lists",
> "tash.platform",
> "tash.regexp",
> "tash.strings",
> "tash.system",
> "tash",
> "tcl.ada",
> "tcl.tk.ada",
> "tcl.tk",
> "tcl"
> );
> for Source_Files use
> (
> "tclmacro.c",
> "tkmacro.c",
> "cargv.adb",
> "cargv.ads",
> "chelper.adb",
> "chelper.ads",
> "tash-arrays.adb",
> "tash-arrays.ads",
> "tash-file.adb",
> "tash-file.ads",
> "tash-file_io.adb",
> "tash-file_io.ads",
> "tash-float_arrays.ads",
> "tash-float_lists.ads",
> "tash-floats.adb",
> "tash-floats.ads",
> "tash-integer_arrays.ads",
> "tash-integer_lists.ads",
> "tash-integers.adb",
> "tash-integers.ads",
> "tash-lists.adb",
> "tash-lists.ads",
> "tash-platform.adb",
> "tash-platform.ads",
> "tash-regexp.adb",
> "tash-regexp.ads",
> "tash-strings.adb",
> "tash-strings.ads",
> "tash-system.adb",
> "tash-system.ads",
> "tash.adb",
> "tash.ads",
> "tcl-ada.adb",
> "tcl-ada.ads",
> "tcl-tk-ada.adb",
> "tcl-tk-ada.ads",
> "tcl-tk.adb",
> "tcl-tk.ads",
> "tcl.adb",
> "tcl.ads"
> );
> for Object_Dir use ".build_lib";
> for Library_Kind use "static";
> for Library_Src_Dir use "lib";
> for Library_Dir use "lib";
>
> package IDE is
> for Compiler_Command ("ada") use "gnatmake";
> for Gnatlist use "gnatls";
> for VCS_Kind use "CVS";
> end IDE;
>
> package Builder is
> for Default_Switches ("ada") use ("-m", "-g");
> end Builder;
>
> package Compiler is
> for Default_Switches ("ada") use Tash_Options.Compiler_Options;
> for Default_Switches ("C") use ("-c", "-g", "-O2", "-I/usr/include");
> end Compiler;
>
> end Build_Tash_Library;
>
next prev parent reply other threads:[~2008-01-24 5:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-24 5:27 Including C source in GNAT project for building library Simon Wright
2008-01-24 5:54 ` Per Sandberg [this message]
2008-01-24 8:33 ` Simon Wright
2008-01-24 6:05 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox