Raw File
Makefile
include Makefile.config

SRCSUBDIRS=src
OTHERDIRS=doc examples
SUBDIRS=$(SRCSUBDIRS) $(OTHERDIRS)

PROJECT_NAME=SIRA
MAJOR=1
MINOR=5
#PATCH=0
#PROJECT_NUMBER=$(MAJOR).$(MINOR).$(PATCH)
PROJECT_NUMBER=$(MAJOR).$(MINOR)

export PROJECT_NAME
export PROJECT_NUMBER

PROJECT=$(PROJECT_NAME)

LIBPREFIX?=lib
LIBNAME=$(LIBPREFIX)$(PROJECT)

TARFILE=$(PROJECT)-$(PROJECT_NUMBER).tar

DISTFILES=INSTALL COPYING COPYING.LESSER AUTHORS
DISTFILES+=Makefile Makefile.config.linux
DISTFILES+=$(SRCC) $(SRCH) 

INSTALLH=
INSTALLLIB=$(LIBNAME).a

all: $(LIBNAME).a doc 

$(LIBNAME).a: Makefile $(SRCSUBDIRS) $(OBJS)
	for dir in $(SRCSUBDIRS); do $(AR) rvs $(LIBNAME).a $$dir/*.o; done

.PHONY: subdirs $(SUBDIRS)

subdirs: $(SRCSUBDIRS) $(OTHERDIRS)

$(SUBDIRS):
	$(MAKE) -C $@ 

%.o: %.c
	$(CC) $(CFLAGS) -c $<

clean:
	for dir in $(SUBDIRS); do $(MAKE) clean -C $$dir; done
	rm -f *~ $(OBJS) $(LIBNAME).a 

dist:
	tar cfv $(TARFILE) $(DISTFILES); \
	for dir in $(SUBDIRS); do \
	  for file in `$(MAKE) -s dist-files -C $$dir`; do \
	    tar rfv $(TARFILE) "$$dir/$$file"; \
	  done; \
	done;
	gzip $(TARFILE)

list-headers:
	for file in $(INSTALLH); do \
	  echo "$$file"; \
	done; \
	for dir in $(SRCSUBDIRS); do \
	  for file in `$(MAKE) -s install-h -C $$dir`; do \
	    echo "$$dir/$$file"; \
	  done; \
	done

list-objects:
	for file in $(INSTALLLIB); do \
	  echo "$$file"; \
	done; \
	for dir in $(SRCSUBDIRS); do \
	  for file in `$(MAKE) -s install-lib -C $$dir`; do \
	    echo "$$dir/$$file"; \
	  done; \
	done

install: $(LIBNAME).a
	mkdir -p "$(TARGET)/include/$(PROJECT)"; \
	mkdir -p "$(TARGET)/lib"; \
	for file in $(INSTALLH); do \
	  install -m "u+rw,go+r" "$$file" "$(TARGET)/include/$(PROJECT)"; \
	done; \
	for dir in $(SRCSUBDIRS); do \
	  for file in `$(MAKE) -s install-h -C $$dir`; do \
	    install -m "u+rw,go+r" "$$dir/$$file" "$(TARGET)/include/$(PROJECT)"; \
	  done; \
	done; \
	for file in $(INSTALLLIB); do \
	  install -m "u+rw,go+r" "$$file" "$(TARGET)/lib"; \
	done; \
	for dir in $(SRCSUBDIRS); do \
	  for file in `$(MAKE) -s install-lib -C $$dir`; do \
	    install -m "u+rw,go+r" "$$dir/$$file" "$(TARGET)/lib"; \
	  done; \
	done

-include .depend
back to top