blob: 696e21103d7e16c6460a0675a65c0946d94c5b58 [file] [log] [blame]
Bill Cox60eeb062015-02-27 10:17:45 -08001# This file was written by Bill Cox in 2010, and is licensed under the Apache
2# 2.0 license.
3#
Bill Cox87a3dc22011-04-15 13:30:46 -04004# Note that -pthread is only included so that older Linux builds will be thread
5# safe. We call malloc, and older Linux versions only linked in the thread-safe
6# malloc if -pthread is specified.
7
Matthew Albright72ae5452013-04-17 22:33:51 -07008SONAME=soname
9UNAME := $(shell uname)
10ifeq ($(UNAME), Darwin)
11 SONAME=install_name
12endif
Bill Cox60eeb062015-02-27 10:17:45 -080013#CFLAGS=-Wall -g -ansi -fPIC -pthread
14CFLAGS=-Wall -O3 -ansi -fPIC -pthread
15LIB_TAG=0.2.0
Bill Cox0ad5c272010-12-17 10:42:13 -050016CC=gcc
Bill Cox40bbd932011-04-13 14:36:09 -040017PREFIX=/usr
Bill Cox524a0ac2011-10-25 08:23:42 -040018LIBDIR=$(PREFIX)/lib
Bill Coxca02d872010-11-02 15:10:52 -040019
Bill Cox500b8702011-10-21 03:24:41 -040020all: sonic libsonic.so.$(LIB_TAG) libsonic.a
Bill Cox7e1978e2010-11-03 11:05:17 -040021
Bill Cox59af4672010-12-17 16:57:41 -050022sonic: wave.o main.o libsonic.so.$(LIB_TAG)
Bill Cox524a0ac2011-10-25 08:23:42 -040023 $(CC) $(CFLAGS) -o sonic wave.o main.o libsonic.so.$(LIB_TAG)
Bill Coxca02d872010-11-02 15:10:52 -040024
25sonic.o: sonic.c sonic.h
Bill Cox0ad5c272010-12-17 10:42:13 -050026 $(CC) $(CFLAGS) -c sonic.c
Bill Coxca02d872010-11-02 15:10:52 -040027
28wave.o: wave.c wave.h
Bill Cox0ad5c272010-12-17 10:42:13 -050029 $(CC) $(CFLAGS) -c wave.c
Bill Coxca02d872010-11-02 15:10:52 -040030
31main.o: main.c sonic.h wave.h
Bill Cox0ad5c272010-12-17 10:42:13 -050032 $(CC) $(CFLAGS) -c main.c
Bill Cox7e1978e2010-11-03 11:05:17 -040033
Bill Cox59af4672010-12-17 16:57:41 -050034libsonic.so.$(LIB_TAG): sonic.o
Matthew Albright72ae5452013-04-17 22:33:51 -070035 $(CC) $(CFLAGS) -shared -Wl,-$(SONAME),libsonic.so.0 sonic.o -o libsonic.so.$(LIB_TAG)
Bill Cox59af4672010-12-17 16:57:41 -050036 ln -sf libsonic.so.$(LIB_TAG) libsonic.so
Bill Cox13318122010-12-18 16:19:50 -050037 ln -sf libsonic.so.$(LIB_TAG) libsonic.so.0
Bill Cox7e1978e2010-11-03 11:05:17 -040038
Bill Cox500b8702011-10-21 03:24:41 -040039libsonic.a: sonic.o
40 $(AR) cqs libsonic.a sonic.o
Bill Cox69a864b2011-03-04 02:51:43 -050041
Bill Cox59af4672010-12-17 16:57:41 -050042install: sonic libsonic.so.$(LIB_TAG) sonic.h
Bill Cox0ad5c272010-12-17 10:42:13 -050043 install -d $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/include $(DESTDIR)$(PREFIX)/lib
44 install sonic $(DESTDIR)$(PREFIX)/bin
45 install sonic.h $(DESTDIR)$(PREFIX)/include
Bill Cox59af4672010-12-17 16:57:41 -050046 install libsonic.so.$(LIB_TAG) $(DESTDIR)$(PREFIX)/lib
Bill Cox500b8702011-10-21 03:24:41 -040047 install libsonic.a $(DESTDIR)$(LIBDIR)
Bill Cox59af4672010-12-17 16:57:41 -050048 ln -sf libsonic.so.$(LIB_TAG) $(DESTDIR)$(PREFIX)/lib/libsonic.so
Bill Cox13318122010-12-18 16:19:50 -050049 ln -sf libsonic.so.$(LIB_TAG) $(DESTDIR)$(PREFIX)/lib/libsonic.so.0
Bill Coxca02d872010-11-02 15:10:52 -040050
Bill Cox200a0ad2011-01-09 10:21:59 -050051uninstall:
52 rm -f $(DESTDIR)$(PREFIX)/bin/sonic
53 rm -f $(DESTDIR)$(PREFIX)/include/sonic.h
54 rm -f $(DESTDIR)$(PREFIX)/lib/libsonic.so.$(LIB_TAG)
55 rm -f $(DESTDIR)$(PREFIX)/lib/libsonic.so
56 rm -f $(DESTDIR)$(PREFIX)/lib/libsonic.so.0
Bill Cox500b8702011-10-21 03:24:41 -040057 rm -f $(DESTDIR)$(LIBDIR)/libsonic.a
Bill Cox200a0ad2011-01-09 10:21:59 -050058
Bill Coxca02d872010-11-02 15:10:52 -040059clean:
Bill Cox500b8702011-10-21 03:24:41 -040060 rm -f *.o sonic libsonic.so* libsonic.a