@@ -2,20 +2,66 @@ AUTOMAKE_OPTIONS = foreign
22
33ACLOCAL_AMFLAGS = -I m4
44
5+ CLEANFILES = $(NULL )
6+
7+ # Install the pkgconfig file for the library
8+ pkgconfigdir = $(libdir ) /pkgconfig
9+ pkgconfig_DATA = libcava.pc
10+
11+ # Generate the pkgconfig file
12+ libcava.pc : Makefile.am
13+ @echo " Generating $@ ..."
14+ @mkdir -p $(@D )
15+ @echo " prefix=$( prefix) " > $@
16+ @echo " exec_prefix=$( exec_prefix) " >> $@
17+ @echo " libdir=$( libdir) " >> $@
18+ @echo " includedir=$( includedir) " >> $@
19+ @echo " Name: $( PKG_CONFIG_NAME) " >> $@
20+ @echo " Description: $( PKG_CONFIG_DESC) " >> $@
21+ @echo " Version: $( PKG_CONFIG_VERSION) " >> $@
22+ @echo " Libs: -L\$ (libdir) -lcava" >> $@ # Link against libcava library
23+ @echo " Cflags: -I\$ (includedir)/cava -I\$ (includedir)/cava/input -I\$ (includedir)/cava/output" >> $@
24+
25+ # Clean up the generated pkgconfig file
26+ CLEANFILES += libcava.pc
27+
28+ # Define the library to be built
29+ # 'lib' directory implies shared library by default with Automake.
30+ # Use 'noinst_LTLIBRARIES' if you don't want to install it but build it for internal use.
31+ lib_LTLIBRARIES = libcava.la
32+
33+ AM_LIBTOOL_VERSION = $(AM_LIBTOOL_CURRENT ) :$(AM_LIBTOOL_REVISION ) :$(AM_LIBTOOL_RELEASE )
34+ AM_LIBTOOL_REL = $(AM_LIBTOOL_RELEASE ) :$(AM_LIBTOOL_REVISION ) :$(AM_LIBTOOL_CURRENT )
35+
36+ libcava_la_LDFLAGS = -version-info $(AM_LIBTOOL_REL )
37+
538bin_PROGRAMS = cava
39+
640cavadir = $(top_srcdir )
7- cava_SOURCES = src/cava.c src/cavacore.c src/common.c src/config.c src/input/common.c src/input/fifo.c src/input/shmem.c \
8- src/output/terminal_noncurses.c src/output/raw.c src/output/noritake.c src/output/common.c\
9- include/cava/cavacore.h include/cava/config.h include/cava/input/common.h include/cava/input/fifo.h include/cava/input/shmem.h \
10- include/cava/output/terminal_noncurses.h include/cava/output/raw.h include/cava/output/noritake.h \
11- include/cava/debug.h include/cava/util.h third_party/incbin.h
12- cava_CPPFLAGS = -DPACKAGE=\"$(PACKAGE ) \" -DVERSION=\"$(VERSION ) \" \
13- -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE_EXTENDED \
14- -DFONTDIR=\"@FONT_DIR@\" -DFONTFILE=\"@FONT_FILE@\" \
15- -I$(top_builddir ) -I$(top_builddir ) /include
41+ cava_SOURCES = cava.c
42+ libcava_la_SOURCES = cavacore.c config.c input/common.c input/fifo.c input/shmem.c \
43+ output/common.c output/terminal_noncurses.c output/raw.c output/noritake.c
44+
45+ cava_CPPFLAGS = \
46+ -DPACKAGE=\"$(PACKAGE ) \" \
47+ -DVERSION=\"$(VERSION ) \" \
48+ -DLIB_VERSION=\"$(VERSION ) \" \
49+ -D_POSIX_SOURCE \
50+ -D_POSIX_C_SOURCE=200809L \
51+ -D_XOPEN_SOURCE_EXTENDED \
52+ -DFONTDIR=\"@FONT_DIR@\" \
53+ -DFONTFILE=\"@FONT_FILE@\" \
54+ -I$(srcdir ) \
55+ -I$(srcfir ) /input \
56+ -I$(srcfir ) /output \
57+ -I$(srcdir ) /include
58+
59+ AM_CFLAGS = $(cava_CPPFLAGS )
60+
1661cava_CFLAGS = -std=c99 -Wall -Wextra -Wno-unused-result -Wno-unknown-warning-option -Wno-maybe-uninitialized -Wno-vla-parameter
1762
1863EXTRA_DIST = \
64+ include \
1965 output/shaders/pass_through.vert \
2066 output/shaders/bar_spectrum.frag \
2167 output/shaders/northern_lights.frag \
@@ -32,6 +78,19 @@ EXTRA_DIST = \
3278 .clang-format \
3379 CMakeLists.txt
3480
81+ # Install entire directories preserving structure
82+ dist-hook :
83+ cp -r include/cava $(DESTDIR )$(includedir )
84+ # Define the target to install the headers
85+ install-exec-hook :
86+ @$(MKDIR_P ) $(DESTDIR )$(includedir ) /cava
87+ # Install entire directories preserving structure
88+ install-data-hook :
89+ cp -r include/cava/* $(DESTDIR )$(includedir ) /cava/
90+ # Define uninstall hook to remove the directory
91+ uninstall-hook :
92+ $(AM_V_GEN ) rm -rf " $( DESTDIR) $( includedir) /cava"
93+
3594if OSX
3695 cava_CFLAGS += -DNORT
3796 cava_LDADD =
43102
44103if FREEBSD
45104if CAVAFONT
46- CLEANFILES = cava.bdf cava.fnt
105+ CLEANFILES + = cava.bdf cava.fnt
47106
48107cava.fnt : ${srcdir}/cava.psf
49108 ${PSF2BDF} --fontname=" -gnu-cava-medium-r-normal--16-160-75-75-c-80-iso10646-1" ${srcdir} /cava.psf cava.bdf
@@ -52,43 +111,45 @@ endif
52111endif
53112
54113if ALSA
55- cava_SOURCES += src/ input/alsa.c include/cava/ input/alsa.h
114+ libcava_la_SOURCES += input/alsa.c input/alsa.h
56115endif
57116
58117if PORTAUDIO
59- cava_SOURCES += src/ input/portaudio.c include/cava/ input/portaudio.h
118+ libcava_la_SOURCES += input/portaudio.c input/portaudio.h
60119endif
61120
62121if PIPEWIRE
63- cava_SOURCES += src/ input/pipewire.c include/cava/ input/pipewire.h
122+ libcava_la_SOURCES += input/pipewire.c input/pipewire.h
64123endif
65124
66125if PULSE
67- cava_SOURCES += src/ input/pulse.c include/cava/ input/pulse.h
126+ libcava_la_SOURCES += input/pulse.c input/pulse.h
68127endif
69128
70129if SNDIO
71- cava_SOURCES += src/ input/sndio.c include/cava/ input/sndio.h
130+ libcava_la_SOURCES += input/sndio.c input/sndio.h
72131endif
73132
74133if OSS
75- cava_SOURCES += src/ input/oss.c include/cava/ input/oss.h
134+ libcava_la_SOURCES += input/oss.c input/oss.h
76135endif
77136
78137if JACK
79- cava_SOURCES += src/ input/jack.c include/cava/ input/jack.h
138+ libcava_la_SOURCES += input/jack.c input/jack.h
80139endif
81140
82141if NCURSES
83- cava_SOURCES += src/ output/terminal_ncurses.c src/ output/terminal_bcircle.c \
84- include/cava/ output/terminal_ncurses.h include/cava/ output/terminal_bcircle.h
142+ libcava_la_SOURCES += output/terminal_ncurses.c output/terminal_bcircle.c \
143+ output/terminal_ncurses.h output/terminal_bcircle.h
85144
86145endif
87146
88147if SDL
89- cava_SOURCES += src/ output/sdl_cava.c include/cava/ output/sdl_cava.h
148+ libcava_la_SOURCES += output/sdl_cava.c output/sdl_cava.h
90149endif
91150
92151if SDL_GLSL
93- cava_SOURCES += src/ output/sdl_glsl.c include/cava/ output/sdl_glsl.h
152+ libcava_la_SOURCES += output/sdl_glsl.c output/sdl_glsl.h
94153endif
154+
155+ cava_SOURCES += $(libcava_la_SOURCES )
0 commit comments