[Top][All Lists]

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

Build System Bug on Arch Linux

From: mwaters517
Subject: Build System Bug on Arch Linux
Date: Wed, 09 Sep 2020 14:36:56 +1000
User-agent: Roundcube Webmail/1.3.8

Hi All,

I've found a some what obscure bug in the GNU-CAP build system. I've figured out what the problem is and can offer a solution that has been tested and appears to work. I've tested
this against the latest git repository.

As the build system proceeds it moves through each gnucap sub-directory (eg. gnucap/apps) and uses "pwd" and "sed" to create the LIBPATH and MODELGEN directories. Unfortunately if the current working directory contains two or more instances of the sub-directory name
(in my case "apps") the build breaks :

make[1]: Entering directory '/home/user/apps/geda/gnucap/git/apps'
mkdir O
mkdir: cannot create directory ‘O’: File exists
make[1]: [Makefile:31: default] Error 1 (ignored)
cat Make1 Make2 ../Make3 Make.depend >O/Makefile
(cd O; make -k)
make[2]: Entering directory '/home/user/apps/geda/gnucap/git/apps/O'
(export LD_LIBRARY_PATH=`pwd | sed 's/apps/lib/g'`; `pwd | sed 's/apps/modelgen/g'`/gnucap-modelgen -cc ../d_mos1.model) /bin/sh: /home/user/modelgen/geda/gnucap/git/modelgen/O/gnucap-modelgen: No such file or directory

In the above, the directory "apps" appears twice and so gets replaced twice. I've found an incantation of "sed" where the last appearance of a string is replaced, which is what is required here. Instead of using : sed 's/apps/lib/g', use : sed 's/\(.*\)apps/\1lib/'`. I only have a problem with the directory "apps" but it could happen in any of the other sub-directories
as well.

The fault occurs in the file gnucap/apps/Make1. The following shows the original lines commented
out and the new lines replacing them :

#LIBPATH = `pwd | sed 's/apps/lib/g'`
LIBPATH = `pwd | sed 's/\(.*\)apps/\1lib/'`
#MODELGEN = `pwd | sed 's/apps/modelgen/g'`/gnucap-modelgen
MODELGEN = `pwd | sed 's/\(.*\)apps/\1modelgen/'`/gnucap-modelgen

Incidentally, "mkdir" has the switch "-p" so that if the directory to be made already exist no
error message is generated.

Hope this helps. Thanks for your efforts writing gnucap.

Mike Waters

reply via email to

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