From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,1ca5e4a3e79e64cb X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!feeder.news-service.com!news.astraweb.com!border1.a.newsrouter.astraweb.com!hwmnpeer01.ams!news.highwinds-media.com!hw-filter.ams!newsfet17.ams.POSTED!40385e62!not-for-mail From: Per Sandberg User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Including C source in GNAT project for building library References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Message-ID: X-Complaints-To: abuse@WWWSpace.NET NNTP-Posting-Date: Thu, 24 Jan 2008 00:51:16 EST Date: Thu, 24 Jan 2008 06:54:34 +0100 Xref: g2news1.google.com comp.lang.ada:19572 Date: 2008-01-24T06:54:34+01:00 List-Id: 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; >