Various build errors on FreeBSD
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gEDA |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Sorry I'm not familiar with autotools or makefiles so can't submit any patches, only displayed errors and how I solve them. Maybe this info will help improve gEDA and in future it will builds on FreeBSD more easily. I guess that's why gEDA port on FreeBSD is terribly outdated...
Build system: FreeBSD 12-1 RELEASE amd64, No GCC, guile2-2.2.6_1 installed
gEDA/gaf version to be built: 1.10.0-20191008
Build commands used:
./configure --without-libfam --prefix=/usr/local
make
make install
---
1. Build process requires FAM to be installed, even if configure script started with '--without-libfam' option:
log:
gschem_
---
2. Configure in XORN failed, it can't detect guile (upper-level configure script detects guile without problems):
log:
checking for GUILE... no
configure: error: Package requirements (guile-2.0 >= 2.0.10) were not met:
Package 'guile-2.0', required by 'virtual:world', not found
I solve this by manual replacement of all "guile-2.0 >= 2.0.10" entries in configure script with "guile-2.2 >= 2.2.6"
---
3. Make don't know how to make gschem/
This error solved by renaming actions.decl.h to actions.decl.c, then changing of Makefile rule:
actions.decl.x: actions.decl.h actions.c Makefile -> actions.decl.x: actions.decl.c actions.c Makefile
(note same rule exist for 'actions.init.c' file, but this file have '.c' extension originally).
---
4. Gsymcheck linking failed. 17 undefined reference errors when linking of gsymcheck like this one:
ld: error: ../../libgeda/
I do not know nothing about this. Linker command line is too long to be posted here, but it seems to be correct.
This error gone only after installing GCC, adding CC=GCC to /etc/make.conf, and rebuilding gEDA
---
At last, build stage finishes without errors. But...
5. make install errors (path not found):
log:
( cd '/usr/local/
cd: /usr/local/
Total three pathes not exist and should be created manually prior issuing 'make install' command:
mkdir /usr/local/
mkdir /usr/local/
mkdir /usr/local/
make install
Thank you for reporting these problems!
> 1. Build process requires FAM to be installed, even if configure script started with '--without-libfam' option
> 2. Configure in XORN failed, it can't detect guile (upper-level configure script detects guile without problems)
These are fixed in current master (commits 77e7077 and 45abe02, respectively). I guess I should bring out a bugfix release soon...
> 3. Make don't know how to make gschem/ src/actions. decl.h
> This error solved by renaming actions.decl.h to actions.decl.c, then changing of Makefile rule
That's weird. Could you please post the original, unmodified Makefile?
> 4. Gsymcheck linking failed. 17 undefined reference errors when linking of gsymcheck
Which C compiler did you use?
'g_file_ get_parse_ name' is used in libgeda, which means all gEDA/gaf binaries must be linked against libgio-2.0. Apparently, gcc and clang figure this out automatically while the C compiler you used doesn't.
Could you please try if the following fix works?
--- a/gsymcheck/ src/Makefile. am src/Makefile. am
$(GUILE_ CFLAGS) $(GDK_PIXBUF_ CFLAGS)
+++ b/gsymcheck/
@@ -19,3 +19,3
-gsymcheck_CFLAGS = $(GCC_CFLAGS) $(MINGW_CFLAGS) $(GLIB_CFLAGS) \
+gsymcheck_CFLAGS = $(GCC_CFLAGS) $(MINGW_CFLAGS) $(GLIB_CFLAGS) $(GIO_CFLAGS) \
-gsymcheck_LDFLAGS = $(GLIB_LIBS) $(GUILE_LIBS) $(GDK_PIXBUF_LIBS)
+gsymcheck_LDFLAGS = $(GLIB_LIBS) $(GIO_LIBS) $(GUILE_LIBS) $(GDK_PIXBUF_LIBS)
> 5. make install errors (path not found) share/gEDA/ sym/gnetman share/gEDA/ sym/verilog share/gEDA/ sym/vhdl
> mkdir /usr/local/
> mkdir /usr/local/
> mkdir /usr/local/
These are the old installation directories for the gnetman, Verilog, and VHDL symbols (see commit 800b5e6). If they exist, "make install" tries to remove the old symbols in order to make sure there aren't any duplicates left from an older installation.
It appears that shell exit codes work slightly different on FreeBSD. Could you please try if the following fix makes "make install" work if the three directories don't exist?
--- a/symbols/ Makefile. am Makefile. am $(datasymdir) /$$lib" && rm -f $$list); \ $(datasymdir) /$$lib" && rm -f $$list || true); \
+++ b/symbols/
@@ -102,1 +102,1 @@ install-data-local:
- (cd "$(DESTDIR)
+ (cd "$(DESTDIR)