2012-12-28 01:13:50 +00:00
PREFIX = /usr/local
2013-01-06 05:21:09 +00:00
TARGET = $( shell uname| tr '[A-Z]' '[a-z]' ) $( shell getconf LONG_BIT)
2013-01-03 18:20:36 +00:00
INCLUDE =
LIBDIRS =
LIBS =
2024-04-20 17:50:02 +00:00
APPNAME = mediaextract
BINEXT =
MANPAGE = $( APPNAME) .1.gz
2013-01-03 06:05:11 +00:00
PLATFORM = posix
2024-04-20 17:50:02 +00:00
BUILD_TYPE = debug
BUILDDIR = build/$( TARGET) /$( BUILD_TYPE)
2012-12-29 00:07:41 +00:00
OBJ = \
2013-01-11 02:35:25 +00:00
$( BUILDDIR) /mediaextract.o \
$( BUILDDIR) /mediaextract_$( PLATFORM) .o \
2020-01-23 02:58:09 +00:00
$( BUILDDIR) /formatstring.o \
2013-01-01 02:27:33 +00:00
$( BUILDDIR) /riff.o \
$( BUILDDIR) /aiff.o \
2012-12-29 00:07:41 +00:00
$( BUILDDIR) /ogg.o \
2012-12-29 16:48:36 +00:00
$( BUILDDIR) /mpg123.o \
2012-12-29 21:46:34 +00:00
$( BUILDDIR) /mp4.o \
2012-12-29 00:07:41 +00:00
$( BUILDDIR) /id3.o \
$( BUILDDIR) /midi.o \
2015-08-07 19:45:37 +00:00
$( BUILDDIR) /xmidi.o \
2012-12-29 04:20:01 +00:00
$( BUILDDIR) /mod.o \
2012-12-29 05:31:30 +00:00
$( BUILDDIR) /s3m.o \
2013-01-02 03:31:45 +00:00
$( BUILDDIR) /xm.o \
2012-12-31 20:02:57 +00:00
$( BUILDDIR) /it.o \
2013-01-01 05:41:01 +00:00
$( BUILDDIR) /asf.o \
2013-01-08 02:37:10 +00:00
$( BUILDDIR) /bink.o \
2013-01-09 02:16:54 +00:00
$( BUILDDIR) /au.o \
2013-01-11 00:49:12 +00:00
$( BUILDDIR) /smk.o \
2013-01-11 02:25:29 +00:00
$( BUILDDIR) /bmp.o \
2013-01-12 04:25:12 +00:00
$( BUILDDIR) /png.o \
2013-01-12 23:52:35 +00:00
$( BUILDDIR) /jpg.o \
2024-04-20 16:57:31 +00:00
$( BUILDDIR) /avif.o \
2013-01-28 04:08:31 +00:00
$( BUILDDIR) /gif.o \
2013-08-25 17:25:29 +00:00
$( BUILDDIR) /mpeg.o \
$( BUILDDIR) /text.o
2012-12-27 16:02:19 +00:00
CC = gcc
2013-01-04 05:47:35 +00:00
LD = $( CC)
2024-04-20 17:50:02 +00:00
CFLAGS += -Wall -Werror -Wextra -std= gnu99 $( INCLUDE) $( LIBDIRS) -D_FILE_OFFSET_BITS= 64
2015-03-12 23:28:06 +00:00
WINDOWS_LIBS = -lws2_32
2024-04-20 17:50:02 +00:00
BIN = $( BUILDDIR) /$( APPNAME) $( BINEXT)
2024-04-20 16:57:31 +00:00
2024-04-20 17:50:02 +00:00
i f e q ( $( BUILD_TYPE ) , r e l e a s e )
CFLAGS += -O2
2024-04-20 16:57:31 +00:00
e l s e
CFLAGS += -g
e n d i f
2013-01-03 06:05:11 +00:00
i f e q ( $( TARGET ) , w i n 3 2 )
PLATFORM = windows
2015-03-12 23:28:06 +00:00
CC = i686-w64-mingw32-gcc
2017-09-29 02:01:49 +00:00
CFLAGS += -DWINVER= 0x500 -m32
LDFLAGS += -m32
2013-01-06 05:21:09 +00:00
LIBS = $( WINDOWS_LIBS)
2024-04-20 17:50:02 +00:00
BINEXT = .exe
2013-01-03 06:05:11 +00:00
e l s e
i f e q ( $( TARGET ) , w i n 6 4 )
PLATFORM = windows
2013-01-03 18:20:36 +00:00
CC = x86_64-w64-mingw32-gcc
2017-09-29 02:01:49 +00:00
CFLAGS += -DWINVER= 0x500 -m64
LDFLAGS += -m64
2013-01-06 05:21:09 +00:00
LIBS = $( WINDOWS_LIBS)
2024-04-20 17:50:02 +00:00
BINEXT = .exe
2013-01-06 05:21:09 +00:00
e l s e
i f e q ( $( TARGET ) , l i n u x 3 2 )
2017-09-29 02:01:49 +00:00
CFLAGS += -pedantic -m32
LDFLAGS += -m32
2013-01-06 05:21:09 +00:00
e l s e
i f e q ( $( TARGET ) , l i n u x 6 4 )
2017-09-29 02:01:49 +00:00
CFLAGS += -pedantic -m64
LDFLAGS += -m64
2013-01-06 05:21:09 +00:00
e n d i f
e n d i f
2013-01-03 06:05:11 +00:00
e n d i f
e n d i f
2012-12-27 16:02:19 +00:00
2013-01-06 05:21:09 +00:00
.PHONY : all clean install uninstall builddir
2012-12-27 01:05:02 +00:00
2018-01-13 05:25:33 +00:00
i f e q ( $( PLATFORM ) , p o s i x )
2017-11-04 00:52:50 +00:00
all : $( BIN ) $( BUILDDIR ) /$( MANPAGE )
2018-01-13 05:25:33 +00:00
e l s e
all : $( BIN )
e n d i f
2012-12-27 16:02:19 +00:00
2013-01-06 05:21:09 +00:00
builddir : $( BUILDDIR )
$(BUILDDIR) :
mkdir -p $( BUILDDIR)
2012-12-27 16:02:19 +00:00
$(BIN) : $( OBJ )
2013-01-03 18:20:36 +00:00
$( LD) $( LIBDIRS) $( LDFLAGS) $( OBJ) -o $@ $( LIBS)
2012-12-27 16:02:19 +00:00
2013-01-11 02:35:25 +00:00
$(BUILDDIR)/mediaextract.o : src /mediaextract .c \
src/mediaextract.h \
2020-01-23 02:58:09 +00:00
src/formatstring.h \
2013-01-01 21:16:13 +00:00
src/ogg.h \
src/riff.h \
src/aiff.h \
src/mpg123.h \
src/mp4.h \
src/id3.h \
src/midi.h \
2015-08-07 19:45:37 +00:00
src/xmidi.h \
2013-01-01 21:16:13 +00:00
src/mod.h \
src/s3m.h \
2013-01-02 03:31:45 +00:00
src/xm.h \
2013-01-01 21:16:13 +00:00
src/it.h \
src/asf.h \
2013-01-08 02:37:10 +00:00
src/bink.h \
2013-01-09 02:16:54 +00:00
src/au.h \
2013-01-11 00:49:12 +00:00
src/smk.h \
2013-01-11 02:25:29 +00:00
src/bmp.h \
2013-01-12 04:25:12 +00:00
src/png.h \
2013-01-12 23:52:35 +00:00
src/jpg.h \
2024-04-20 16:57:31 +00:00
src/avif.h \
2013-01-28 04:08:31 +00:00
src/gif.h \
2013-08-25 17:25:29 +00:00
src/mpeg.h \
src/text.h
2013-01-03 06:05:11 +00:00
$( CC) $( CFLAGS) $< -o $@ -c $( LIBS)
2012-12-27 16:02:19 +00:00
2013-01-11 02:35:25 +00:00
$(BUILDDIR)/mediaextract_$(PLATFORM).o : src /mediaextract_ $( PLATFORM ) .c src /mediaextract .h
2013-01-03 06:05:11 +00:00
$( CC) $( CFLAGS) $< -o $@ -c $( LIBS)
2020-01-23 02:58:09 +00:00
$(BUILDDIR)/formatstring.o : src /formatstring .c src /formatstring .h
$( CC) $( CFLAGS) $< -o $@ -c $( LIBS)
2013-01-03 02:46:28 +00:00
2024-04-20 16:57:31 +00:00
$(BUILDDIR)/%.o : src /%.c src /mediaextract .h src /riff .h
2013-08-25 17:25:29 +00:00
$( CC) $( CFLAGS) $< -o $@ -c $( LIBS)
2013-01-04 05:47:35 +00:00
i f e q ( $( PLATFORM ) , p o s i x )
2017-11-04 00:52:50 +00:00
install : $( PREFIX ) /bin /$( APPNAME ) $( PREFIX ) /share /man /man 1/$( MANPAGE )
2024-04-20 17:50:02 +00:00
$(BUILDDIR)/$(MANPAGE) : src /ManPageIncludeFile $( BIN )
PATH = $( BUILDDIR) :$( PATH) help2man $( APPNAME) --no-info -n "extracts media files that are embedded within other files" -S "Mathias Panzenböck" -i src/ManPageIncludeFile >$( BUILDDIR) /$( APPNAME) .1
2017-11-04 00:52:50 +00:00
gzip -kf $( BUILDDIR) /$( APPNAME) .1
2024-04-20 16:57:31 +00:00
$(PREFIX)/share/man/man1/$(MANPAGE) : $( BUILDDIR ) /$( APPNAME ) .1
2017-11-04 00:52:50 +00:00
mkdir -p " $( PREFIX) /share/man/man1/ "
install $( BUILDDIR) /$( MANPAGE) " $@ "
2012-12-29 05:45:04 +00:00
2013-01-03 06:05:11 +00:00
$(PREFIX)/bin/$(APPNAME) : $( BIN )
2013-01-08 02:37:10 +00:00
mkdir -p " $( PREFIX) /bin "
install -s $( BIN) " $@ "
2012-12-28 01:13:50 +00:00
uninstall :
2013-01-03 06:05:11 +00:00
rm -f " $( PREFIX) /bin/ $( APPNAME) "
2013-01-04 05:47:35 +00:00
e n d i f
2012-12-28 01:13:50 +00:00
2015-04-20 19:04:57 +00:00
recode : $( BUILDDIR ) /recode
$(BUILDDIR)/recode : src /text .c src /text .h
$( CC) $( CFLAGS) $< -o $@ -DMEDIAEXTRACT_RECODE_BIN
2012-12-27 01:05:02 +00:00
clean :
2017-11-04 00:52:50 +00:00
rm -f $( BUILDDIR) /*