60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| 
								 | 
							
								# compiler, tools
							 | 
						||
| 
								 | 
							
								CC = clang
							 | 
						||
| 
								 | 
							
								PKG_CONFIG ?= pkg-config
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# flags
							 | 
						||
| 
								 | 
							
								CFLAGS ?= -march=native -O2 -pipe
							 | 
						||
| 
								 | 
							
								CFLAGS += -std=c99 -Wall -Wextra -Werror -Wno-unused-variable -Wno-unused-parameter -Wno-unused-function
							 | 
						||
| 
								 | 
							
								ifeq ($(shell $(CC) -v 2>&1 | grep 'gcc version' &>/dev/null && echo 1),1)
							 | 
						||
| 
								 | 
							
								CFLAGS += -Wno-unused-but-set-variable
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								LDFLAGS ?= -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ifndef NODEBUG
							 | 
						||
| 
								 | 
							
								CFLAGS += -O0 -g3
							 | 
						||
| 
								 | 
							
								endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								TARGET = drow-engine
							 | 
						||
| 
								 | 
							
								HEADERS = err.h parser.h
							 | 
						||
| 
								 | 
							
								OBJECTS = main.o parser.o
							 | 
						||
| 
								 | 
							
								INCS = -I.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CFLAGS += $(shell $(PKG_CONFIG) --cflags gl glu glib-2.0)
							 | 
						||
| 
								 | 
							
								LIBS = $(shell $(PKG_CONFIG) --libs gl glu glib-2.0) -lglut -lm
							 | 
						||
| 
								 | 
							
								CPPFLAGS += -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_GNU_SOURCE
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# install variables
							 | 
						||
| 
								 | 
							
								INSTALL = install
							 | 
						||
| 
								 | 
							
								INSTALL_BIN = install -m755
							 | 
						||
| 
								 | 
							
								INSTALL_DIR = install -d
							 | 
						||
| 
								 | 
							
								PREFIX = /usr/local
							 | 
						||
| 
								 | 
							
								LIBDIR = lib64
							 | 
						||
| 
								 | 
							
								INSTALL_BINDIR = $(PREFIX)/bin
							 | 
						||
| 
								 | 
							
								INSTALL_LIBDIR = $(PREFIX)/$(LIBDIR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%.o: %.c
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) $(CPPFLAGS) $(INCS) -c $*.c
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								all: $(TARGET)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$(TARGET): $(HEADERS) $(OBJECTS)
							 | 
						||
| 
								 | 
							
									$(CC) $(CFLAGS) $(CPPFLAGS) $(INCS) -o $(TARGET) $(OBJECTS) $(LDFLAGS) $(LIBS)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								install:
							 | 
						||
| 
								 | 
							
									$(INSTALL_DIR) "$(DESTDIR)$(INSTALL_BINDIR)"
							 | 
						||
| 
								 | 
							
									$(INSTALL_BIN) $(TARGET) "$(DESTDIR)$(INSTALL_BINDIR)"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uninstall:
							 | 
						||
| 
								 | 
							
									rm "$(DESTDIR)$(INSTALL_BINDIR)/$(TARGET)"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								clean:
							 | 
						||
| 
								 | 
							
									rm -f *.o $(TARGET)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								doc:
							 | 
						||
| 
								 | 
							
									doxygen
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								doc-pdf: doc
							 | 
						||
| 
								 | 
							
									$(MAKE) -C latex pdf
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								.PHONY: clean install doc doc-pdf
							 |