runcl

A minimal OpenCL harness for rendering images
git clone git://pollux.codes/git/runcl.git
Log | Files | Refs | README | LICENSE

Makefile (1619B)


      1 # User-defined variables
      2 
      3 PREFIX 			?= /usr/local
      4 BINDIR 			?= $(PREFIX)/bin
      5 INCDIR      ?= $(PREFIX)/include
      6 BINMODE			?= 755
      7 LIBMODE			?= 644
      8 DOCMODE			?= 644
      9 
     10 BINSUFFIX		?=
     11 
     12 # Programs used
     13 
     14 PKG_CONFIG 	:= pkg-config
     15 RM					:= rm -rf
     16 MKDIR       := mkdir
     17 INSTALL			:= install
     18 
     19 # Other variables
     20 
     21 SRCDIR = src
     22 OBJDIR = build
     23 HDIR   = include
     24 
     25 SRC_FILES = $(shell find $(SRCDIR) -name '*.c' -printf "%P ")
     26 
     27 LIBS      = "OpenCL >= 3.0 libpng >= 1.6.44"
     28 OBJS      = $(addprefix $(OBJDIR)/,$(SRC_FILES:c=o))
     29 
     30 # CFLAGS
     31 
     32 debug:   CFLAGS = -g -O0
     33 debug:   WFLAGS = -Werror
     34 release: CFLAGS = -O2
     35 release: WFLAGS = -Wall -Wextra -Werror -Wpedantic
     36 
     37 RCFLAGS  = -c $(CFLAGS) $(WFLAGS) -std=c99 $(shell pkg-config --cflags $(LIBS)) -I$(HDIR)
     38 RLDFLAGS = $(LDFLAGS) $(shell pkg-config --libs $(LIBS))
     39 
     40 # Build Info
     41 
     42 PROG_NAME     = runcl
     43 VERSION       = $(shell git describe --tags --always 2>/dev/null)
     44 
     45 BUILD_TYPE = Release
     46 debug:   BUILD_TYPE = Debug
     47 
     48 # Preprocessor Flags
     49 
     50 CPPFLAGS = -DPROG_NAME=$(PROG_NAME) -DVERSION=$(VERSION) -DBUILD_TYPE=$(BUILD_TYPE) -DCFLAGS="$(RCFLAGS)" -DLDFLAGS="$(RLDFLAGS)"
     51 
     52 # Build Targets
     53 
     54 all:     release
     55 release: runcl
     56 debug:   runcl
     57 
     58 runcl: $(OBJS)
     59 	@printf "LD $@\n"
     60 	@$(CC) $(RLDFLAGS) -o runcl $(OBJS)
     61 
     62 $(OBJDIR)/%.o: $(SRCDIR)/%.c
     63 	@$(MKDIR) -p $(@D)
     64 	@printf "CC $@\n"
     65 	@$(CC) $(RCFLAGS) $(CPPFLAGS) -o $@ $^
     66 
     67 
     68 clean:
     69 	@printf "RM $(OBJDIR)\n"
     70 	@$(RM) $(OBJDIR)
     71 	@printf "RM runcl\n"
     72 	@$(RM) runcl
     73 
     74 install:
     75 	@$(INSTALL) -d $(DESTDIR)$(BINDIR)/
     76 	@printf "INSTALL runcl -> $(DESTDIR)$(BINDIR)/runcl$(BINSUFFIX)\n"
     77 	@$(INSTALL) -s -m $(BINMODE) runcl $(DESTDIR)$(BINDIR)/runcl$(BINSUFFIX)