70 lines
1.2 KiB
Makefile
70 lines
1.2 KiB
Makefile
|
|
# This makefile is a bit hackish. I wrote it early in the AM.
|
||
|
|
# Fohgiveuhness, please!!
|
||
|
|
|
||
|
|
ifndef $(CFG)
|
||
|
|
CFG=Debug
|
||
|
|
endif
|
||
|
|
|
||
|
|
TARGET=libgcm
|
||
|
|
PROJECTHOME=$(shell pwd)
|
||
|
|
LIBDIR=/usr/lib
|
||
|
|
HEADERDIR=/usr/include
|
||
|
|
|
||
|
|
ifeq "$(CFG)" "Debug"
|
||
|
|
OUTDIR=Debug
|
||
|
|
LIBTARGET=$(TARGET)-dbg.so
|
||
|
|
LINKLIB=gcm-dbg
|
||
|
|
# CFLAGS really should be -Werror...
|
||
|
|
CFLAGS=-g -ggdb -gstabs -Wall -c
|
||
|
|
LDFLAGS=-shared -fPIC -o $(OUTDIR)/$(LIBTARGET)
|
||
|
|
endif
|
||
|
|
|
||
|
|
ifeq "$(CFG)" "Release"
|
||
|
|
OUTDIR=Release
|
||
|
|
LIBTARGET=$(TARGET).so
|
||
|
|
LINKLIB=gcm
|
||
|
|
CFLAGS=-O2 -fomit-frame-pointer -pipe -c
|
||
|
|
LDFLAGS=-shared -fPIC -o $(OUTDIR)/$(LIBTARGET)
|
||
|
|
endif
|
||
|
|
|
||
|
|
LIBSRC=source/gcminfo.cpp
|
||
|
|
TESTSRC=source/gcmbrowser.cpp
|
||
|
|
|
||
|
|
LIBOBJ=$(OUTDIR)/gcminfo.o
|
||
|
|
TESTOBJ=$(OUTDIR)/gcmbrowser.o
|
||
|
|
|
||
|
|
CC = gcc
|
||
|
|
CXX = g++
|
||
|
|
LD = $(CXX)
|
||
|
|
|
||
|
|
|
||
|
|
$(OUTDIR)/%.o : source/%.cpp
|
||
|
|
$(CXX) $(CFLAGS) -o $@ $<
|
||
|
|
|
||
|
|
all: lib bin
|
||
|
|
|
||
|
|
lib: $(LIBOBJ) $(TESTOBJ)
|
||
|
|
$(LD) $(LDFLAGS) $(LIBOBJ)
|
||
|
|
|
||
|
|
bin:
|
||
|
|
$(LD) -o $(OUTDIR)/gcmbrowser \
|
||
|
|
$(LIBOBJ) $(TESTOBJ)
|
||
|
|
|
||
|
|
|
||
|
|
.PHONY: clean
|
||
|
|
clean:
|
||
|
|
rm $(OUTDIR)/*.o
|
||
|
|
rm $(OUTDIR)/gcmbrowser
|
||
|
|
rm $(OUTDIR)/$(LIBTARGET)
|
||
|
|
|
||
|
|
.PHONY: rebuild
|
||
|
|
rebuild:
|
||
|
|
make clean
|
||
|
|
make CFG=$(CFG)
|
||
|
|
|
||
|
|
|
||
|
|
.PHONY: install
|
||
|
|
install:
|
||
|
|
$(INSTALL) $(OUTDIR)/$(LIBTARGET) $(LIBDIR)/$(TARGET)
|
||
|
|
$(INSTALL) source/gcminfo.h $(HEADERDIR)/libgcm.h
|