unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* config.h changes comitted -- ./autogen.sh run required.
@ 2003-03-26  0:12 Rob Browning
  2003-03-26  0:40 ` Rob Browning
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Rob Browning @ 2003-03-26  0:12 UTC (permalink / raw)



I've just committed all my public/private scmconfig.h/config.h changes
to CVS.  Everyone will probably need to re-run ./autogen.sh.  For more
info see the diffs to NEWS, the ChangeLogs, and
libguile/gen-scmconfig.c.  There were a lot of changes (touched around
100 files), so I expect there may be some bugs that will need fixing.
Among other things, many symbols that used to be defined in the public
namespace have been made private.  This includes all kinds of HAVE_FOO
and SIZEOF_FOO definitions.

Note also that we now guarantee that quite a few useful types will be
always be defined and allow tests for a number of other optional ones.
See NEWS for full information, but here is a list of some of what has
been added:

Guile always defines

  SCM_SIZEOF_CHAR
  SCM_SIZEOF_UNSIGNED_CHAR
  SCM_SIZEOF_SHORT
  SCM_SIZEOF_UNSIGNED_SHORT
  SCM_SIZEOF_LONG
  SCM_SIZEOF_UNSIGNED_LONG
  SCM_SIZEOF_INT
  SCM_SIZEOF_UNSIGNED_INT
  SCM_SIZEOF_LONG_LONG /* defined to 0 if type not available */
  SCM_SIZEOF_UNSIGNED_LONG_LONG /* defined to 0 if type not available */

  scm_t_int8
  scm_t_uint8
  scm_t_int16
  scm_t_uint16
  scm_t_int32
  scm_t_uint32

Guile always defines

  SCM_HAVE_T_INT64
  SCM_HAVE_T_UINT64

and when either of these are defined to 1, optionally defines 

  scm_t_int64
  scm_t_uint64

respectively.

Guile always defines

  scm_t_timespec
  scm_t_ptrdiff
  SCM_SIZEOF_INTPTR_T /* defined to 0 if type not available */
  SCM_SIZEOF_UINTPTR_T /* defined to 0 if type not available */

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: config.h changes comitted -- ./autogen.sh run required.
  2003-03-26  0:12 config.h changes comitted -- ./autogen.sh run required Rob Browning
@ 2003-03-26  0:40 ` Rob Browning
  2003-03-28 22:40 ` Kevin Ryde
  2003-03-28 22:59 ` Kevin Ryde
  2 siblings, 0 replies; 5+ messages in thread
From: Rob Browning @ 2003-03-26  0:40 UTC (permalink / raw)



s/comitted/committed/ ;>

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: config.h changes comitted -- ./autogen.sh run required.
  2003-03-26  0:12 config.h changes comitted -- ./autogen.sh run required Rob Browning
  2003-03-26  0:40 ` Rob Browning
@ 2003-03-28 22:40 ` Kevin Ryde
  2003-03-31 23:21   ` Rob Browning
  2003-03-28 22:59 ` Kevin Ryde
  2 siblings, 1 reply; 5+ messages in thread
From: Kevin Ryde @ 2003-03-28 22:40 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 108 bytes --]

I think libguile/Makefile.am is using top_srcdir for config.h where it
should use top_builddir, per below.


[-- Attachment #2: libguile-Makefile.am.diff --]
[-- Type: text/plain, Size: 382 bytes --]

--- Makefile.am.~1.185.~	2003-03-27 09:31:35.000000000 +1000
+++ Makefile.am	2003-03-29 08:33:34.000000000 +1000
@@ -47,7 +47,7 @@
 		$(COMPILE) -c -o $@ $<; \
 	fi
 
-scmconfig.h: ${top_srcdir}/config.h gen-scmconfig
+scmconfig.h: ${top_builddir}/config.h gen-scmconfig
 	rm -f scmconfig.h.tmp
 	cat $(srcdir)/scmconfig.h.top > scmconfig.h.tmp
 	./gen-scmconfig >> scmconfig.h.tmp

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: config.h changes comitted -- ./autogen.sh run required.
  2003-03-26  0:12 config.h changes comitted -- ./autogen.sh run required Rob Browning
  2003-03-26  0:40 ` Rob Browning
  2003-03-28 22:40 ` Kevin Ryde
@ 2003-03-28 22:59 ` Kevin Ryde
  2 siblings, 0 replies; 5+ messages in thread
From: Kevin Ryde @ 2003-03-28 22:59 UTC (permalink / raw)


I think libguile/Makefile.am ends up using plain $(CC) to link
gen-scmconfig, rather than $(CC_FOR_BUILD).  And $(OBJEXT) in the rule
for gen-scmconfig.$(OBJEXT) will be the cross-compiler's objext I
think.

As a suggestion, it might be easier to make a rule for a combined
compile and link, to keep right away from the $(CC) setups,

gen-scmconfig$(EXEEXT_FOR_BUILD): gen-scmconfig.c ...
        $(CC_FOR_BUILD) `test -f 'gen-scmconfig.c' || echo '$(srcdir)/'\`gen-scmconfig.c -o gen-scmconfig$(EXEEXT_FOR_BUILD)

If you're not planning to build on djgpp or mingw then
$(EXEEXT_FOR_BUILD) can be dispensed with.


I hit my head against some of this for gmp recently (in the next
release it'll run some stuff on the build system).  The couple of
macros below might be of use for inspiration or consideration.

(The CC_FOR_BUILD search below assumes that nothing particular in the
way of types or sizes is needed from the build compiler, just a
compiler that will create a working executable.)

AC_ARG_VAR on CC_FOR_BUILD is a good idea, if nothing else.  It shows
the variable in configure --help, and preserves the value across
re-configures.




dnl  GMP_PROG_CC_FOR_BUILD
dnl  ---------------------
dnl  Establish CC_FOR_BUILD, a C compiler for the build system.
dnl
dnl  If CC_FOR_BUILD is set, it's used without testing, likewise the old
dnl  style HOST_CC, otherwise some likely candidates are tried, as per
dnl  configfsf.guess.

AC_DEFUN(GMP_PROG_CC_FOR_BUILD,
[AC_REQUIRE([AC_PROG_CC])
if test -n "$CC_FOR_BUILD"; then
  GMP_PROG_CC_FOR_BUILD_WORKS($CC_FOR_BUILD,,
    [AC_MSG_ERROR([Specified CC_FOR_BUILD doesn't seem to work])])
elif test -n "$HOST_CC"; then
  GMP_PROG_CC_FOR_BUILD_WORKS($HOST_CC,
    [CC_FOR_BUILD=$HOST_CC],
    [AC_MSG_ERROR([Specified HOST_CC doesn't seem to work])])
else
  for i in "$CC" "$CC $CFLAGS $CPPFLAGS" cc gcc c89 c99; do
    GMP_PROG_CC_FOR_BUILD_WORKS($i,
      [CC_FOR_BUILD=$i
       break])
  done
  if test -z "$CC_FOR_BUILD"; then
    AC_MSG_ERROR([Cannot find a build system compiler])
  fi
fi
    
AC_ARG_VAR(CC_FOR_BUILD,[build system C compiler])
AC_SUBST(CC_FOR_BUILD)
])


dnl  GMP_PROG_CC_FOR_BUILD_WORKS(cc/cflags[,[action-if-good][,action-if-bad]])
dnl  -------------------------------------------------------------------------
dnl  See if the given cc/cflags works on the build system.
dnl
dnl  It seems easiest to just use the default compiler output, rather than
dnl  figuring out the .exe or whatever at this stage.

AC_DEFUN(GMP_PROG_CC_FOR_BUILD_WORKS,
[AC_MSG_CHECKING([build system compiler $1])
rm -f conftest* a.out b.out a.exe a_out.exe
cat >conftest.c <<EOF
int
main ()
{
  exit(0);
}
EOF
gmp_compile="$1 conftest.c"
cc_for_build_works=no
if AC_TRY_EVAL(gmp_compile); then
  if (./a.out || ./b.out || ./a.exe || ./a_out.exe || ./conftest) >&AC_FD_CC 2>&1; then
    cc_for_build_works=yes
  fi
fi
rm -f conftest* a.out b.out a.exe a_out.exe
AC_MSG_RESULT($cc_for_build_works)
if test "$cc_for_build_works" = yes; then
  ifelse([$2],,:,[$2])
else
  ifelse([$3],,:,[$3])
fi
])

dnl  GMP_PROG_EXEEXT_FOR_BUILD
dnl  -------------------------
dnl  Determine EXEEXT_FOR_BUILD, the build system executable suffix.
dnl
dnl  The idea is to find what "-o conftest$foo" will make it possible to run
dnl  the program with ./conftest.  On Unix-like systems this is of course
dnl  nothing, for DOS it's ".exe", or for a strange RISC OS foreign file
dnl  system cross compile it can be ",ff8" apparently.  Not sure if the
dnl  latter actually applies to a build-system executable, maybe it doesn't,
dnl  but it won't hurt to try.

AC_DEFUN(GMP_PROG_EXEEXT_FOR_BUILD,
[AC_REQUIRE([GMP_PROG_CC_FOR_BUILD])
AC_CACHE_CHECK([for build system executable suffix],
               gmp_cv_prog_exeext_for_build,
[cat >conftest.c <<EOF
int
main ()
{
  exit (0);
}
EOF
for i in .exe ,ff8 ""; do
  gmp_compile="$CC_FOR_BUILD conftest.c -o conftest$i"
  if AC_TRY_EVAL(gmp_compile); then
    if (./conftest) 2>&AC_FD_CC; then
      gmp_cv_prog_exeext_for_build=$i
      break
    fi
  fi
done
rm -f conftest*
if test "${gmp_cv_prog_exeext_for_build+set}" != set; then
  AC_MSG_ERROR([Cannot determine executable suffix])
fi
])
AC_SUBST(EXEEXT_FOR_BUILD,$gmp_cv_prog_exeext_for_build)
])


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: config.h changes comitted -- ./autogen.sh run required.
  2003-03-28 22:40 ` Kevin Ryde
@ 2003-03-31 23:21   ` Rob Browning
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Browning @ 2003-03-31 23:21 UTC (permalink / raw)
  Cc: guile-devel

Kevin Ryde <user42@zip.com.au> writes:

> I think libguile/Makefile.am is using top_srcdir for config.h where it
> should use top_builddir, per below.

OK, thanks -- changed in my tree -- will commit later.

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-03-31 23:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-26  0:12 config.h changes comitted -- ./autogen.sh run required Rob Browning
2003-03-26  0:40 ` Rob Browning
2003-03-28 22:40 ` Kevin Ryde
2003-03-31 23:21   ` Rob Browning
2003-03-28 22:59 ` Kevin Ryde

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).