a project with custom makefile

blubee blubeeme gurenchan at gmail.com
Fri Nov 24 21:23:38 UTC 2017


I have a port that has different directories each with it's own makefile
that creates some binaries in subdir/bin

A typical makefile from this project looks like this:
-------------------------------------------------------
# Install
BIN = x11

# Flags
CFLAGS = -std=c89 -pedantic -O2 `pkg-config --cflags --libs x11`

SRC = main.c
OBJ = $(SRC:.c=.o)

$(BIN):
@mkdir -p bin
rm -f bin/$(BIN) $(OBJS)
$(CC) $(SRC) $(CFLAGS) -o bin/$(BIN) -lX11 -lm
-------------------------------------------------------

There's a few things that I need to do to this makefile to make it work
first I have to remove -lX11 and -lm from the $(CC) line

second I have to add `pkg-config --cflags --libs x11` to the CFLAGS line.

if I go into the folder and run make, it builds and put the executable in
the bin directory inside that sub folder.

when I make the edits as listed above and then try to use FreeBSD Makefile.

OPTIONS_DEFINE= X11

x11_DESC=                     X11 sample


.include <bsd.port.pre.mk>
do-build:
.if ${PORT_OPTIONS:Mx11}
@(${DO_MAKE_BUILD} -C ${WRKSRC}/demo/x11/)
.endif
.include <bsd.port.post.mk>

This DO_MAKE_BUILD command builds the executable and puts it in the
subdir/bin folder but I get an error cannot open Makefile.

/usr/local/include/X11/Xfuncproto.h:174:24: warning: named variadic macros
are a GNU extension [-Wvariadic-macros]
#define _X_NONNULL(args...)  __attribute__((nonnull(args)))
                       ^
1 warning generated.
===>  Staging for nuklear-1.0
===>   Generating temporary packing list
make[2]: cannot open Makefile.

Is there a straight forward way to fix this issue or do I need to write a
makefile or cmake file and try to get that upstream?


More information about the freebsd-ports mailing list