Re: missing info in the models tarballs.

David Fang <[email protected]>
Newsgroups gmane.comp.gnu.gnucap.devel
Message-ID <[email protected]>
> You need this info to build them, unless you are lucky..
>
> They are designed to be unpacked in the gnucap core root.
> (where src, modelgen, COPYING, and those files are)  so plugins
> is one of those.  All of them will create plugins, so if you
> unpack them all in the same place, you will get subdirs in
> plugins.
>
> If you unpack them anywhere else, you need to edit the
> file "Make2".  Change the line GNUCAP_INCLUDE to identify where
> the gnucap include files are.

Al,
	Heh, after unpacking and reading through the Makefiles, I decided
to move plugins/ into the gnucap source tree, upon seeing the
-I ../../../src flag.  And then this message came along... :)

> Obviously I do not intend to leave it this way.  Obviously, the
> correct way is not obvious!
>
> More info,hopefully a discussion, will follow.  I am treading
> new ground here.

Testing on powerpc-apple-darwin8:

% make
(cd asrc; make)
make[1]: warning: jobserver unavailable: using -j1.  Add `+' to parent
make rule.
g++ -O2 -g -I. -I../Include -DTRACE_UNTESTED -DSPICE_3f -DHAS_STDLIB -fPIC
-I../../../src -Wall -Wextra  -c ../Include/wrapper.cc
/usr/include/stdlib.h:226: error: declaration of C function 'int
setenv(const char*, const char*, int)' conflicts with
../Include/cpstd.h:54: error: previous declaration 'void setenv()' here
../Include/wrapper.cc: In static member function 'static void
MODEL_SPICE::init_ckt()':
../Include/wrapper.cc:247: warning: the address of 'static CKTcircuit*
MODEL_SPICE::ckt()', will always evaluate as 'true'
make[1]: *** [wrapper.o] Error 1

And in cpstd.h:

#ifndef linux
extern void setenv();
#endif /* linux */


Not even close to actual prototype.  :(
Let's make this portable... I'm willing to help autoconfiscate.
#ifndef-ing hardcoded platforms is not robust.

> To the autoconf lovers ...  If these files use autoconf, it
> becomes a run time dependency for gnucap.  That is not
> acceptable.  Plugin source is considered to be user data.

Autoconf doesn't necessarily make it a run-time dependence.
How do you want this to work?  Build/install gnucap-core into some path,
providing core include headers and libraries?
Compile plugin-models into shared libraries, perhaps installed headers
into /prefix-path/include/gnucap and core libraries into
/prefix-path/lib/gnucap/?  Have plug-in modules be configured with an
argument to the gnucap install paths?  --with-gnucap=[PATH], perhaps?
I'm willing to assist in the autotools department, once I understand tha
goals.

David Fang
Computer Systems Laboratory
Electrical & Computer Engineering
Cornell University
http://www.csl.cornell.edu/~fang/
	-- (2400 baud? Netscape 3.0?? lynx??? No problem!)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.