comp.lang.ada
 help / color / mirror / Atom feed
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;
> 



  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