mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	
		
			
	
	
		
			125 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			125 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|   | .PHONY: all install clean distclean configure | ||
|  | 
 | ||
|  | .NOTPARALLEL: | ||
|  | 
 | ||
|  | include ../versions.mak | ||
|  | export LIBJWT_DIR := $(shell pwd -P) | ||
|  | JANSSON_DIR := $(shell realpath $(LIBJWT_DIR)/../jansson) | ||
|  | 
 | ||
|  | SPECIAL_TARGETS := | ||
|  | 
 | ||
|  | ifneq ($(findstring configure,$(MAKECMDGOALS)),) | ||
|  | # Run from $(ASTTOPDIR)/configure
 | ||
|  |     SPECIAL_TARGETS += configure | ||
|  | endif | ||
|  | 
 | ||
|  | ifeq ($(findstring clean,$(MAKECMDGOALS)),clean) | ||
|  | # clean or distclean
 | ||
|  |     SPECIAL_TARGETS += clean | ||
|  | endif | ||
|  | 
 | ||
|  | ifeq ($(findstring uninstall,$(MAKECMDGOALS)),uninstall) | ||
|  |     SPECIAL_TARGETS += uninstall | ||
|  | endif | ||
|  | 
 | ||
|  | 
 | ||
|  | ifneq ($(wildcard ../../makeopts),) | ||
|  |     include ../../makeopts | ||
|  | endif | ||
|  | 
 | ||
|  | ifeq ($(SPECIAL_TARGETS),) | ||
|  | # Run locally or from $(ASTTOPDIR)/Makefile.  All include files should be present
 | ||
|  |     ifeq ($(wildcard ../../makeopts),) | ||
|  |         $(error ASTTOPDIR/configure hasn't been run) | ||
|  |     endif | ||
|  | 
 | ||
|  |     ifeq ($(LIBJWT_BUNDLED),yes) | ||
|  |         ifneq ($(wildcard ../../menuselect.makeopts),) | ||
|  |             include ../../menuselect.makeopts | ||
|  |         else | ||
|  |             $(warning ASTTOPDIR/menuselect hasn't been run yet.  Can't find debug options.) | ||
|  |         endif | ||
|  | 
 | ||
|  |         all: dist/usr/lib/libjwt.a | ||
|  |     else | ||
|  |         all: | ||
|  |     endif | ||
|  | endif | ||
|  | 
 | ||
|  | include ../../Makefile.rules | ||
|  | include ../Makefile.rules | ||
|  | include Makefile.rules | ||
|  | 
 | ||
|  | OPTIMIZE_CFLAGS = -g3 | ||
|  | ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),) | ||
|  |     OPTIMIZE_CFLAGS += $(OPTIMIZE) | ||
|  | endif | ||
|  | 
 | ||
|  | ECHO_PREFIX := $(ECHO_PREFIX) echo '[libjwt] ' | ||
|  | SHELL_ECHO_PREFIX := echo '[libjwt] ' | ||
|  | 
 | ||
|  | dist/usr/lib/libjwt.a: source/config.status | ||
|  | 	$(ECHO_PREFIX) Building bundled libjwt. | ||
|  | 	$(CMD_PREFIX) (cd source; make $(REALLY_QUIET)) | ||
|  | 	$(CMD_PREFIX) (cd source; make install DESTDIR=$(LIBJWT_DIR)/dist $(REALLY_QUIET)) | ||
|  | ifeq ($(JANSSON_BUNDLED),yes) | ||
|  | # Modules that need to use json manipulation functions will do
 | ||
|  | # so through the ast_json wrappers which cause the main asterisk
 | ||
|  | # executable to link to either the system implementation of jansson
 | ||
|  | # or the bundled jansson.  libjwt also needs to call jansson functions
 | ||
|  | # directly and if we're not using the bundled version of jansson,
 | ||
|  | # this works fine bcause the dynamic linker can get the symbols
 | ||
|  | # directly from the system-installed version of jansson when the
 | ||
|  | # module using libjwt loads. If we're using bundled jansson however,
 | ||
|  | # those symbols exist only in the main asterisk executable and a
 | ||
|  | # library can't resolve against them. The result is that a module
 | ||
|  | # making jwt_ calls will fail to load at runtime with unresolved
 | ||
|  | # json_ symbols.  To address this, we create a combined library
 | ||
|  | # containing both bundled libjwt and bundled jansson so a module
 | ||
|  | # will have all symbols resolved correctly.
 | ||
|  | 	$(CMD_PREFIX) mv dist/usr/lib/libjwt.a dist/usr/lib/libjwt_orig.a | ||
|  | 	$(CMD_PREFIX) cd dist/usr/lib ; $(AR) -rcsT libjwt.a libjwt_orig.a \
 | ||
|  | 		$(JANSSON_DIR)/dist/usr/lib/libjansson.a | ||
|  | endif | ||
|  | 
 | ||
|  | .DELETE_ON_ERROR: | ||
|  | 
 | ||
|  | $(DOWNLOAD_DIR)/$(TARBALL_FILE): ../versions.mak | ||
|  | 	$(CMD_PREFIX) ($(TARBALL_EXISTS) && $(TARBALL_VERIFY) && touch $@) || (rm -rf $@ ;\
 | ||
|  | 	$(TARBALL_DOWNLOAD)) || (rm -rf $@ ;\
 | ||
|  | 	$(SHELL_ECHO_PREFIX) Retrying download ; $(TARBALL_DOWNLOAD)) | ||
|  | 
 | ||
|  | source/.unpacked: $(DOWNLOAD_DIR)/$(TARBALL_FILE) | ||
|  | 	$(CMD_PREFIX) $(TARBALL_VERIFY) || (rm -rf $@ ;\
 | ||
|  | 	$(SHELL_ECHO_PREFIX) Retrying download ; $(TARBALL_DOWNLOAD)) | ||
|  | 	$(ECHO_PREFIX) Unpacking $< | ||
|  | 	-@rm -rf source libjwt-*/ >/dev/null 2>&1 | ||
|  | 	$(CMD_PREFIX) $(TAR) -xf $< | ||
|  | 	@mv libjwt-$(LIBJWT_VERSION) source | ||
|  | 	$(ECHO_PREFIX) Applying patches "$(realpath patches)" "$(realpath .)/source" | ||
|  | 	$(CMD_PREFIX) ../apply_patches $(QUIET_CONFIGURE) "$(realpath patches)" "$(realpath .)/source" | ||
|  | 	-@touch source/.unpacked | ||
|  | 
 | ||
|  | .rebuild_needed: $(wildcard ../../.lastclean) | ||
|  | 	$(ECHO_PREFIX) Rebuilding | ||
|  | 	$(CMD_PREFIX) $(MAKE) clean $(REALLY_QUIET) | ||
|  | 
 | ||
|  | source/config.status: source/.unpacked Makefile.rules .rebuild_needed | ||
|  | 	$(ECHO_PREFIX) Configuring | ||
|  | 	$(CMD_PREFIX) (cd source ; ./configure $(QUIET_CONFIGURE) $(LIBJWT_CONFIG_OPTS) --disable-shared \
 | ||
|  | 		--enable-static --prefix=/usr --libdir=/usr/lib CFLAGS="$(OPTIMIZE_CFLAGS) -fPIC") | ||
|  | 
 | ||
|  | configure: source/config.status | ||
|  | 
 | ||
|  | install: | ||
|  | uninstall: | ||
|  | 
 | ||
|  | clean: | ||
|  | 	$(ECHO_PREFIX) Cleaning | ||
|  | 	+-$(CMD_PREFIX) rm -rf dist | ||
|  | 	+-$(CMD_PREFIX) test -d source && $(SUBMAKE) -C source clean $(REALLY_QUIET) || : | ||
|  | 
 | ||
|  | distclean: | ||
|  | 	$(ECHO_PREFIX) Distcleaning | ||
|  | 	-$(CMD_PREFIX) rm -rf dist source libjwt-*.tar.gz .rebuild_needed |