| # Makefile for tinydtls |
| # |
| # |
| # Copyright (c) 2011, 2012, 2013, 2014, 2015, 2016 Olaf Bergmann (TZI) and others. |
| # All rights reserved. This program and the accompanying materials |
| # are made available under the terms of the Eclipse Public License v1.0 |
| # and Eclipse Distribution License v. 1.0 which accompanies this distribution. |
| # |
| # The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| # and the Eclipse Distribution License is available at |
| # http://www.eclipse.org/org/documents/edl-v10.php. |
| # |
| # Contributors: |
| # Olaf Bergmann - initial API and implementation |
| # |
| |
| # the library's version |
| VERSION:=@PACKAGE_VERSION@ |
| |
| # tools |
| @SET_MAKE@ |
| SHELL = /bin/sh |
| MKDIR = mkdir |
| ETAGS = @ETAGS@ |
| CC=@CC@ |
| AR=@AR@ |
| RANLIB=@RANLIB@ |
| |
| prefix = @prefix@ |
| exec_prefix = @exec_prefix@ |
| abs_builddir = @abs_builddir@ |
| top_builddir = @top_builddir@ |
| top_srcdir = @top_srcdir@ |
| libdir = @libdir@ |
| includedir = @includedir@/@PACKAGE_NAME@ |
| package = @PACKAGE_TARNAME@-@PACKAGE_VERSION@ |
| |
| install := cp |
| |
| # files and flags |
| SOURCES:= dtls.c crypto.c ccm.c hmac.c netq.c peer.c dtls_time.c session.c dtls_debug.c |
| SUB_OBJECTS:=aes/rijndael.o @OPT_OBJS@ |
| OBJECTS:= $(patsubst %.c, %.o, $(SOURCES)) $(SUB_OBJECTS) |
| HEADERS:=dtls.h hmac.h dtls_debug.h dtls_config.h uthash.h numeric.h crypto.h global.h ccm.h \ |
| netq.h alert.h utlist.h prng.h peer.h state.h dtls_time.h session.h \ |
| tinydtls.h |
| CFLAGS:=-Wall -pedantic -std=c99 @CFLAGS@ @WARNING_CFLAGS@ |
| CPPFLAGS:=@CPPFLAGS@ -DDTLS_CHECK_CONTENTTYPE -I$(top_srcdir) |
| SUBDIRS:=tests doc platform-specific sha2 aes ecc |
| DISTSUBDIRS:=$(SUBDIRS) |
| DISTDIR=$(top_builddir)/$(package) |
| FILES:=Makefile.in configure configure.in dtls_config.h.in tinydtls.h.in \ |
| Makefile.tinydtls $(SOURCES) $(HEADERS) |
| LIB:=libtinydtls.a |
| LDFLAGS:=@LIBS@ |
| ARFLAGS:=cru |
| doc:=doc |
| |
| .PHONY: all dirs clean install dist distclean .gitignore doc TAGS |
| |
| ifneq ("@WITH_CONTIKI@", "1") |
| .SUFFIXES: |
| .SUFFIXES: .c .o |
| |
| all: $(LIB) dirs |
| |
| check: |
| echo DISTDIR: $(DISTDIR) |
| echo top_builddir: $(top_builddir) |
| $(MAKE) -C tests check |
| |
| dirs: $(SUBDIRS) |
| for dir in $^; do \ |
| $(MAKE) -C $$dir ; \ |
| done |
| |
| $(SUB_OBJECTS):: |
| $(MAKE) -C $(@D) $(@F) |
| |
| $(LIB): $(OBJECTS) |
| $(AR) $(ARFLAGS) $@ $^ |
| $(RANLIB) $@ |
| |
| clean: |
| @rm -f $(PROGRAM) main.o $(LIB) $(OBJECTS) |
| for dir in $(SUBDIRS); do \ |
| $(MAKE) -C $$dir clean ; \ |
| done |
| endif # WITH_CONTIKI |
| |
| doc: |
| $(MAKE) -C doc |
| |
| distclean: clean |
| @rm -rf $(DISTDIR) |
| @rm -f *~ $(DISTDIR).tar.gz |
| |
| dist: $(FILES) $(DISTSUBDIRS) |
| test -d $(DISTDIR) || mkdir $(DISTDIR) |
| cp $(FILES) $(DISTDIR) |
| for dir in $(DISTSUBDIRS); do \ |
| $(MAKE) -C $$dir dist; \ |
| done |
| tar czf $(package).tar.gz $(DISTDIR) |
| |
| install: $(LIB) $(HEADERS) $(SUBDIRS) |
| test -d $(libdir) || mkdir -p $(libdir) |
| test -d $(includedir) || mkdir -p $(includedir) |
| $(install) $(LIB) $(libdir)/ |
| $(install) $(HEADERS) $(includedir)/ |
| for dir in $(SUBDIRS); do \ |
| $(MAKE) -C $$dir install="$(install)" includedir=$(includedir) install; \ |
| done |
| |
| TAGS: |
| $(ETAGS) -o $@.new $(SOURCES) |
| $(ETAGS) -a -o $@.new $(HEADERS) |
| mv $@.new $@ |
| |
| # files that should be ignored by git |
| GITIGNOREDS:= core \*~ \*.[oa] \*.gz \*.cap \*.pcap Makefile \ |
| autom4te.cache/ config.h config.log config.status configure \ |
| doc/Doxyfile doc/doxygen.out doc/html/ $(LIB) tests/ccm-test \ |
| tests/dtls-client tests/dtls-server tests/prf-test $(package) \ |
| $(DISTDIR)/ TAGS \*.patch .gitignore ecc/testecc ecc/testfield \ |
| \*.d \*.hex \*.elf \*.map obj_\* tinydtls.h dtls_config.h \ |
| $(addprefix \*., $(notdir $(wildcard ../../platform/*))) \ |
| .project |
| |
| .gitignore: |
| echo $(GITIGNOREDS) | sed 's/ /\n/g' > $@ |
| |