gnucap-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnucap-devel] New gnucap development snapshot


From: Dan McMahill
Subject: Re: [Gnucap-devel] New gnucap development snapshot
Date: Tue, 12 Sep 2006 05:14:31 -0400
User-agent: Thunderbird 1.5.0.5 (Windows/20060719)

al davis wrote:
Most of this is really to Dan, but here it is for all to see..


On Wednesday 30 August 2006 19:39, al davis wrote:
2. Configuration changes.  Most of the problems with autoconf
based installation should be fixed.  A few minor issues still
remain, but should not be noticeable to most users.

This package was built with the old system. "make distcheck" under autoconf still doesn't do the right thing.

The old build system does run some checks, now including to make sure the autoconf generated files are up to date.

In the autoconf version, "make distcheck" fails if the modelgen generated files are not present. So, if I "make" then "make distcheck" it builds a file, including the generated files. If I do "make distclean" then "make distcheck" it fails.

The files included here are equivalent to what you get after "make distclean", without the modelgen generated files. This is the correct set of files for the distribution.

I fixed (I hope) the way modelgen is called. What I did was add an explicit dependency for c_getckt.o on the modelgen output. Now modelgen is called just before its output is needed. Also the generated files are not included in the distribution which I agree is the right thing here.

4. The "man/html" directory is not included, due to problems
with autoconf.

This is strictly an autoconf issue. The whole directory is generated, and will not be if you don't ask for the html manual. Autoconf requires some files which must be manually maintained, or the "make html" needs to generate them, even "Makefile.am", and therefore "Makefile.in".

5. If you use the old build system, you can build "info" and
plain text versions of the manual.  Use "configure.old" to
use the old build system.

I put targets for these into Makefile.am but they are not automatically called.

I just didn't migrate the changes over. The "info" directory has the same issues as the "html" directory. These use hevea to make them.

We could pretty easily add those directories to what goes in the distfile and to what gets installed (I wouldn't do the latter without the former since many, or most, users don't have hevea) if that is desired. I'm not sure how to get around having to do 'make' before 'make dist' or 'make distcheck' though when wildcards are used to get the list of generated files. I can ask on the automake mailing list if you're interested.





Also ...

I decided not to include gnucap-man.dvi. Gnu policy says to include info, nothing else, but I disagree. "dvi" is a ready to print version. It seems to me that "html" accomplishes all that "info" was supposed to do, but is more general.


Regarding the issue under #2 ... I insist that the modelgen generated files should not be included. Any user can build modelgen, and make those files. The process of building the program should put them with the .o files. This is done correctly with either system.

fixed.

One point seems a little strange is when the modelgen generated files are made. In the old system, they are deferred until needed. With the autoconf system, they are all built before any .cc files are compiled. This doesn't really matter, except that I don't understand why they should be different.

fixed.

Let me know what else you need addressed.

-Dan

Only in gnucap-2006-08-30: autom4te.cache
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/config.h.in 
gnucap-2006-08-30/config.h.in
--- gnucap-2006-08-30.orig/config.h.in  2006-06-06 02:45:42.000000000 -0400
+++ gnucap-2006-08-30/config.h.in       2006-09-12 04:54:17.000000000 -0400
@@ -1,10 +1,4 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
 /* Define to 1 if you have the `readline' library (-lreadline). */
 #undef HAVE_LIBREADLINE
@@ -13,28 +7,4 @@
 #undef HAVE_LIBTERMCAP
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
 /* Name of package */
 #undef PACKAGE
@@ -55,7 +25,4 @@
 #undef PACKAGE_VERSION
 
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
 /* Version number of package */
 #undef VERSION
Only in gnucap-2006-08-30: config.h.in~
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/configure.ac 
gnucap-2006-08-30/configure.ac
--- gnucap-2006-08-30.orig/configure.ac 2006-08-30 16:51:49.000000000 -0400
+++ gnucap-2006-08-30/configure.ac      2006-09-12 04:54:12.000000000 -0400
@@ -72,5 +72,6 @@
 AM_CONDITIONAL(MISSING_HEVEA, test x$HEVEA = xnotfound -o x$HACHA = xnotfound)
 AC_PATH_PROG(LATEX, latex, notfound)
-AM_CONDITIONAL(MISSING_LATEX, test x$LATEX = xnotfound)
+AC_PATH_PROG(MAKEINDEX, makeindex, notfound)
+AM_CONDITIONAL(MISSING_LATEX, test x$LATEX = xnotfound -o x$MAKEINDEX = 
xnotfound)
 
 # Checks for libraries.
@@ -82,5 +83,5 @@
 
 # Checks for header files.
-AC_CHECK_HEADERS([fcntl.h unistd.h])
+#AC_CHECK_HEADERS([fcntl.h unistd.h])
 
 # Checks for typedefs, structures, and compiler characteristics.
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/man/Makefile.am 
gnucap-2006-08-30/man/Makefile.am
--- gnucap-2006-08-30.orig/man/Makefile.am      2006-08-30 17:17:58.000000000 
-0400
+++ gnucap-2006-08-30/man/Makefile.am   2006-09-12 05:00:18.000000000 -0400
@@ -7,5 +7,5 @@
 dist_pkgmanual_DATA= gnucap-man.pdf
 
-EXTRA_DIST= ${TEXSRCS} Makefile.template configure.old gnucap-man.pdf
+EXTRA_DIST= ${TEXSRCS} Makefile.template configure.old gnucap-man.dvi
 
 TEXSRCS= \
@@ -15,16 +15,15 @@
 
 MOSTLYCLEANFILES = \
-gnucap-man.aux gnucap-man.idx gnucap-man.log gnucap-man.out \
-gnucap-man.toc gnucap-man.haux gnucap-man.hidx gnucap-man.hind \
-gnucap-man.htoc gnucap-man.ilg gnucap-man.ind
+       gnucap-man.aux gnucap-man.idx gnucap-man.log gnucap-man.out \
+       gnucap-man.toc gnucap-man.haux gnucap-man.hidx gnucap-man.hind \
+       gnucap-man.htoc gnucap-man.ilg gnucap-man.ind
 
 CLEANFILES = $(MOSTLYCLEANFILES) \
-gnucap-man.dvi gnucap-man.txt info html
+       gnucap-man.dvi gnucap-man.txt info html
 
-DISTCLEANFILES = $(CLEANFILES) \
-Makefile
+DISTCLEANFILES = $(CLEANFILES)
 
 MAINTAINERCLEANFILES = $(DISTCLEANFILES) \
-gnucap-man.pdf
+       gnucap-man.pdf
 
 TEXDIRS= Addmodel Behavior Circuit Commands Tech
@@ -35,5 +34,5 @@
 DVIPDFM=       @DVIPDFM@
 HACHA=         @HACHA@
-HEVEA=         @HEVEA@
+HEVEA=         @HEVEA@ -I $(srcdir)
 LATEX=         @LATEX@
 
@@ -59,18 +58,44 @@
        env TEXINPUTS=$(srcdir): ${LATEX} -interaction=nonstopmode \
                $(srcdir)/gnucap-man |grep -v hyperref |grep .
-       makeindex gnucap-man
+       ${MAKEINDEX} gnucap-man
        env TEXINPUTS=$(srcdir): ${LATEX} -interaction=nonstopmode \
                $(srcdir)/gnucap-man |grep -v hyperref |grep .
 endif
 
+# html version of the manual
 html/index.html: $(TEXFILES)
 if MISSING_HEVEA
+       @echo "WARNING:  Either hevea or hacha was not found on your system but"
+       @echo "          $@ is out of date and needs to be"
+       @echo "          rebuilt from the LaTeX .tex files. Changes to"
+       @echo "          the .tex files will be ignored."
+else
+       -mkdir html
        ${HEVEA} -fix -o html/gnucap-man $(srcdir)/gnucap-man.tex
        cd html; ${HACHA} -nolinks gnucap-man; rm -f gnucap-man *.haux *.htoc
+endif
+
+
+# info version of the manual
+info/gnucap-man.info: $(TEXFILES)
+if MISSING_HEVEA
+       @echo "WARNING:  Either hevea or hacha was not found on your system but"
+       @echo "          $@ is out of date and needs to be"
+       @echo "          rebuilt from the LaTeX .tex files. Changes to"
+       @echo "          the .tex files will be ignored."
 else
+       -mkdir info
+       ${HEVEA} -fix -info -o $@ $(srcdir)/gnucap-man.tex
+endif
+
+# plain text
+gnucap-man.txt:  $(TEXFILES)
+if MISSING_HEVEA
        @echo "WARNING:  Either hevea or hacha was not found on your system but"
        @echo "          $@ is out of date and needs to be"
        @echo "          rebuilt from the LaTeX .tex files. Changes to"
        @echo "          the .tex files will be ignored."
+else
+       ${HEVEA} -fix -text -o $@ $(srcdir)/gnucap-man.tex
 endif
 
diff -x Makefile.in -x configure -U2 -r gnucap-2006-08-30.orig/src/Makefile.am 
gnucap-2006-08-30/src/Makefile.am
--- gnucap-2006-08-30.orig/src/Makefile.am      2006-08-28 02:15:43.000000000 
-0400
+++ gnucap-2006-08-30/src/Makefile.am   2006-09-12 04:47:20.000000000 -0400
@@ -26,5 +26,9 @@
 bin_PROGRAMS= gnucap
 
-gnucap_SOURCES= \
+# globals.cc should be listed first as it must be linked before
+# any files which have a static object with a constructor that
+# relates to the netlist.
+
+gnucap_SOURCES= globals.cc \
  ap_construct.cc ap_convert.cc ap_error.cc ap_get.cc ap_match.cc ap.h \
  m_cpoly.h m_divdiff.h m_interp.h m_matrix.h m_spline.h ap_skip.cc bm.cc \
@@ -46,5 +50,5 @@
  findbr.cc io.cc io_contr.cc io_error.cc io_findf.cc io_getln.cc io_out.cc \
  l_compar.h l_denoise.h l_jmpbuf.h l_lib.h l_stlextra.h l_timer.h l_ftos.cc \
- l_timer.cc l_trim.cc io_xopen.cc l_pmatch.cc l_wmatch.cc md.cc globals.cc \
+ l_timer.cc l_trim.cc io_xopen.cc l_pmatch.cc l_wmatch.cc md.cc \
  u_opt1.cc u_opt2.cc md.h io_.h io_error.h io_trace.h u_opt.h mode.h \
  constant.h declare.h m_fft.cc m_spline.cc plot.cc s_ac.cc \
@@ -54,8 +58,13 @@
  s_tr_set.cc s_tr_swp.cc u_cardst.h u_limit.h m_wave.h u_nodemap.cc u_sdp.cc \
  u_prblst.cc u_probe.cc u_xprobe.cc u_nodemap.h u_sdp.h u_prblst.h \
- u_probe.h u_xprobe.h u_parameter.h u_parameter.cc \
- ${BUILT_SOURCES}
+ u_probe.h u_xprobe.h u_parameter.h u_parameter.cc
 
-BUILT_SOURCES= ${MODELS:.model=.cc} ${MODELS:.model=.h}
+## The modelgen built sources go here because we don't want them to
+## go in the distfile (hence the nodist_).
+nodist_gnucap_SOURCES= ${MODELSRCS}
+
+## This is needed because c_getckt.o depends on the headers generated by
+## modelgen.
+c_getckt.${OBJEXT}: ${MODELSRCS}
 
 ## The .model files for modelgen
@@ -72,9 +81,11 @@
  Makefile.template configure.old test_readline.cc
 
+## The modelgen generated files
+MODELSRCS= ${MODELS:.model=.cc} ${MODELS:.model=.h}
 
 ### Clean out the modelgen generated files
-DISTCLEANFILES= ${MODELS:.model=.cc} ${MODELS:.model=.h}
+CLEANFILES= ${MODELSRCS}
 
-## Suffix rules for modelgen
+## Suffix rules for modelgen.
 ##
 
@@ -82,5 +93,5 @@
 MODELGEN= @MODELGEN@
 
-%.cc : %.model ${MODELGEN}
+%.cc : %.model %.h ${MODELGEN}
        ${MODELGEN} -cc $<
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]