1

I'm trying to compile fIcy (https://gitlab.com/wavexx/fIcy) for NetBSD/FreeBSD.

When I'm executing the make command nothing happens. Even no error message.

The same source package compiles without problems with Debian 10.

Is the Makefile even compatible with BSD?

https://gitlab.com/wavexx/fIcy/blob/master/Makefile

The commands I used so far on FreeBSD 12:

pkg install gcc
wget https://gitlab.com/wavexx/fIcy/-/archive/master/fIcy-master.tar.gz
tar xfvz fIcy-master.tar.gz
cd fIcy-master
make

type make
make is /usr/bin/make
  • Could you add more details about your issue? Especially what commands you typed and the standard output of them. BTW, the makefile does not seem to be incompatible with your system and just ask for gcc and make programs (without mentioning the version, but since the tool is written in C++03, I am guessing that the version should not be a problem). – Paradox Jul 24 at 17:48
  • Please, do not add screenshots of terminals, but, instead, copy and paste what you typed and the standard output of each command typed. – Paradox Jul 24 at 17:54
2

You should use GNU's make as README.rst says:

pkg install gmake

If you've already installed any other dependencies you should run

gmake all

(Note g is the first letter.)

Works for me but if you've any error message please post/edit it.

/Note: the GNU make and FreeBSD make aren't compatible. They can work as POSIX make but have different extensions./

  • gmake worked fine. – Lagerbier Jul 24 at 18:57
  • I'm glad it works :) – uzsolt Jul 25 at 6:55
  • @Lagerbier as this answer helped you please accept it by clicking on the checkmark below the vote balance. – guntbert Jul 27 at 20:42
0

@uzsolt's answer is solid. The code compiles for me using the method described. The Makefile appears to need this patch to the install target, however:

--- Makefile    2019-01-29 07:21:44.000000000 -0800
+++ Makefile    2019-07-24 11:50:40.204021000 -0700
@@ -40,7 +40,7 @@
        rm -f $(all_OBJECTS) $(all_DEPS) $(TARGETS)

 install: $(TARGETS)
-       install -p -t $(DESTDIR)$(PREFIX)/bin/ $(TARGETS)
+       install -p $(TARGETS) $(DESTDIR)$(PREFIX)/bin/


 # Dependencies

With that patch applied, you can install the compiled binaries with:

sudo gmake install
  • Maybe try to contact the developer of fIcy to fix this, and to reflect the necessary changes to the documentation as well. – Paradox Jul 24 at 22:26
0

Referring to the documentation, you should be able to compile and install it for BSD distributions (at least FreeBSD) in /usr/local/, just with the following:

make CXX=eg++ PREFIX=/usr/local/ install

Make sure you gcc's version is equals or above 3.0.

For the record, the installation part of the documentation:

fIcy comes with a very simple Makefile that should work on any system using gcc and GNU make. Documentation is generated from these files using rst2html. All standard environment flags are supported, including DESTDIR/PREFIX for relocated installation. If you need to use a different compiler (for example on OpenBSD), you can call make as follows:

make CXX=eg++ PREFIX=/usr install

instead of changing manually the Makefile. Please note that, when using gcc, at least g++ >= 3 is required to compile fIcy. Also note that, for "fPls" to work, fIcy must be already installed (be in "PATH") or a full fIcy path must be specified with -P.

  • 1
    Don't install anything into /usr/ in FreeBSD you should use /usr/local instead (see freebsd.org/cgi/…). The FreeBSD's make isn't compatible with GNU make. – uzsolt Jul 24 at 18:29
  • Good point. Though, someone should make sure that fIcy official documentation takes this into account. – Paradox Jul 24 at 22:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.