Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
  • cont-frb/moberg-review
  • v0.9.26
  • v0.9.25
  • v0.9.24
  • v0.9.23
  • v0.9.22
  • v0.9.21
  • v0.9.20
  • v0.9.19
  • v0.9.18
  • v0.9.17
  • v0.9.16
  • v0.9.15
  • v0.9.14
  • v0.9.13
  • v0.9.12
  • v0.9.11
  • v0.9.10
  • v0.9.9
  • v0.9.8
  • v0.9.7
22 results

Makefile

Blame
  • Makefile 2.18 KiB
    LIBRARIES=libmoberg.so
    MOBERG_VERSION=$(shell git describe --tags | sed -e 's/^v//;s/-/./g' )
    CCFLAGS+=-Wall -Werror -I$(shell pwd) -O3 -g
    LDFLAGS+=-L$(shell pwd)/build/ -lmoberg
    PLUGINS:=$(wildcard plugins/*)
    ADAPTORS:=$(wildcard adaptors/*)
    export CCFLAGS LDFLAGS
    LDFLAGS_parse_config=-ldl
    #-export-dynamic
    
    all: $(LIBRARIES:%=build/%) build/moberg $(PLUGINS) $(ADAPTORS)
    	echo $(PLUGINS)
    	echo $(CCFLAGS)
    
    build/libmoberg.so: Makefile | build
    	$(CC) -o $@ $(CCFLAGS) -shared -fPIC -I. \
    		$(filter %.o,$^) -lxdg-basedir -ldl
    
    build/moberg: moberg_tool.c Makefile | build
    	$(CC) -o $@ $(CCFLAGS) $< -Lbuild -lmoberg
    
    build/lib build:
    	mkdir -p $@
    
    %:	build/%.o Makefile
    	$(CC) $(LDFLAGS) $(LDFLAGS_$(*)) -o $@  $(filter %.o,$^)
    
    build/%.o:	%.c Makefile
    	$(CC) $(CCFLAGS) -c -o $@ $<
    
    build/lib/%.o:	%.c Makefile | build/lib
    	$(CC) $(CCFLAGS) -c -fPIC -o $@ $<
    
    .PHONY: $(ADAPTORS)
    $(ADAPTORS): Makefile
    	$(MAKE) -C $@
    
    .PHONY: $(PLUGINS)
    $(PLUGINS): Makefile
    	$(MAKE) -C $@
    	cp $@/build/libmoberg_*.so build
    
    
    .PHONY: TAR
    TAR:
    	git archive \
    		--prefix moberg-$(MOBERG_VERSION)/ \
    		--output moberg-$(MOBERG_VERSION).tar.gz -- HEAD
    
    .PHONY: moberg-$(MOBERG_VERSION).spec
    moberg-$(MOBERG_VERSION).spec: moberg.spec.template Makefile
    	sed -e 's/__MOBERG_VERSION__/$(MOBERG_VERSION)/' $< > $@
    
    .PHONY: SRPM
    SRPM:	moberg-$(MOBERG_VERSION).spec TAR
    	rpmbuild --define "_sourcedir $$(pwd)" -bs $<
    
    
    
    .PHONY: test
    test: all
    	$(MAKE) -C test test
    
    clean:
    	rm -f build/*.so
    	rm -f build/*.mex*
    	rm -f build/lib/*.o
    	rm -f *~
    	rm -f moberg-*.spec
    	rm -f moberg-*.tar.gz
    	make -C test clean
    	for d in $(ADAPTORS) ; do make -C $$d clean ; done
    	for d in $(PLUGINS) ; do make -C $$d clean ; done
    
    build/libmoberg.so: build/lib/moberg.o
    build/libmoberg.so: build/lib/moberg_config.o
    build/libmoberg.so: build/lib/moberg_device.o
    build/libmoberg.so: build/lib/moberg_parser.o
    build/lib/%.o: %.h
    build/lib/%.o: moberg_inline.h
    build/lib/moberg.o: moberg_config.h
    build/lib/moberg.o: moberg_module.h
    build/lib/moberg.o: moberg_parser.h
    build/lib/moberg_device.o: moberg.h
    build/lib/moberg_device.o: moberg_channel.h
    build/lib/moberg_device.o: moberg_config.h
    build/lib/moberg_device.o: moberg_device.h
    build/lib/moberg_device.o: moberg_inline.h