dos33fsprogs icon indicating copy to clipboard operation
dos33fsprogs copied to clipboard

Makefile.inc: Use pkg-config to find libraries

Open 0cjs opened this issue 6 months ago • 2 comments

MacOS systems using MacPorts, among others, do not have libpng and liblz4 include files and libraries in the standard system paths; this ensures that wherever they are, they're added to the compiler and linker options.

(This requires that users have installed pkg-config, but most systems with development tools will have that already.)

0cjs avatar Jun 18 '25 05:06 0cjs

This doesn't work, because the following Makefiles do not use the CFLAGS set in Makefile.inc, but instead override it:

tc$ ggrep 'CFLAGS ='
Makefile.inc:CFLAGS = -O2 -Wall $(shell pkg-config --cflags libpng liblz4)
demos/lores_escape/generator/Makefile:CFLAGS = -Wall -O2
demos/megademo/music/Makefile:CFLAGS = -g -O2 -Wall
demos/seasons/x86/Makefile:CFLAGS = -O2 -Wall
demos/second/part01_intropan/tools/Makefile:CFLAGS = -Wall -O2
demos/second/part18_3d/auto/Makefile:CFLAGS = -g -Wall -O2
ethernet/c/Makefile:CFLAGS = -Wall -O2
games/duke/maps/Makefile:CFLAGS = -g -Wall -O2
games/keen/maps/Makefile:CFLAGS = -g -Wall -O2
games/keen/sound/Makefile:CFLAGS = -Wall -O2
games/keen/story/Makefile:CFLAGS = -Wall -O2 -g
games/ksp/c/Makefile:CFLAGS = -Wall -O2
games/mist_hgr/graphics_title/animation/Makefile:CFLAGS = -O2 -Wall
games/peasant/text/Makefile:CFLAGS = -O2 -Wall -g
graphics/gr/plasmagoria/sines/Makefile:CFLAGS = -O2 -Wall
music/pt3_player/table_gen/Makefile:CFLAGS = -O2 -Wall
music/still_alive/art/Makefile:CFLAGS = -O2 -Wall
random/Makefile:CFLAGS = -O2 -Wall
utils/bmp2dhr/Makefile:CFLAGS = -Wall -O2
utils/fractal/Makefile:CFLAGS = -O2 -Wall -g
utils/gimp/hgr_gimp_palette/Makefile:CFLAGS = -O2 -Wall -g
utils/gr-sim/6502_test/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/Makefile:CFLAGS = -Wall -O2 -g
utils/gr-sim/bubble/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/dgr/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/dhgr/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/donut/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/dos/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/dots/Makefile:CFLAGS = -O2 -Wall -g
utils/gr-sim/drops/Makefile:CFLAGS = -O2 -Wall -I.. -g
utils/gr-sim/fade/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/fire/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/gr/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/hellmood_memories/Makefile:CFLAGS = -O2 -Wall -I.. -g
utils/gr-sim/hgr/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/kaleido_sparkle/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/lz4/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/mode7_demo/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/plasma/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/rasterbars/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/raytrace/Makefile:CFLAGS = -O2 -Wall -I.. -g
utils/gr-sim/rotate_wipe/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/split_screen/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/starfield/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/starpath/Makefile:CFLAGS = -O2 -Wall -I.. -g
utils/gr-sim/text/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/tfv/Makefile:CFLAGS = -Wall -O2 -g -I..
utils/gr-sim/tunnel/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-sim/twister/Makefile:CFLAGS = -O2 -Wall -g
utils/gr-sim/water/Makefile:CFLAGS = -Wall -O2 -I.. -g
utils/gr-utils/Makefile:CFLAGS = -g -Wall -O2
utils/hgr-utils/Makefile:CFLAGS = -O2 -Wall -g

It's not clear to me why so many programs want to specify their own CFLAGS rather than use the default.

0cjs avatar Jun 18 '25 06:06 0cjs

The commit has been tweaked to fix the original issue for a couple of graphics programs that really need the Makefile.inc CFLAGS. The rest are untouched, but probably they should all be converted in the same way.

0cjs avatar Jun 18 '25 06:06 0cjs