summaryrefslogblamecommitdiff
path: root/src/Makefile
blob: bd58fd128e2f3b572372fd3b2cc0d1ecdedd6c3d (plain) (tree)
1
2
3
4
5
6
7
8
                       
                        
             
 


                                    
                              


                                                            
                                        
                                                                     

                                                                          
 
                                                                                  


                                       
                              
                                                                    
                                                                             
                                                          
 
                                                                    
                                                                                
                                            

                

                                                                      
     


                                            
                                            
                                            


                                    
                                
                                         

     
                         

                                           
                                                                 


                                                                     
                                           
                                                            
                                                                                
                                                                                            
 
                                     
                                                                       
                                  
                                                                  
                                          
                                          
 
                                                                     
                                            
                                                                          
                                             
 
                       
 
                          
 

                                            
                                                  

                            
 
PKGDEPS := openssl zlib
PKG_CONFIG ?= pkg-config
LUAAPK ?= yes

# lua module
ifneq ($(LUAAPK),)
LIBAPK			:= YesPlease
PKGDEPS			+= lua
shlibs-y		+= apk.so
apk.so-objs		:= lua-apk.o
CFLAGS_lua-apk.o	:= -DAPK_VERSION=\"$(FULL_VERSION)\"
LUA_LIB-y		:= $(obj)/apk.so
install-LUA_LIB-y	:= $(INSTALLDIR) $(DESTDIR)$(LUA_LIBDIR) && \
			   $(INSTALL) $(LUA_LIB-y) $(DESTDIR)$(LUA_LIBDIR)
endif

ifeq ($(shell $(PKG_CONFIG) --print-errors --exists $(PKGDEPS) || echo fail),fail)
$(error Build dependencies are not met)
endif

progs-y			+= apk
apk-objs		:= apk.o add.o del.o fix.o update.o info.o \
			   search.o upgrade.o cache.o ver.o index.o fetch.o \
			   audit.o verify.o dot.o policy.o

libapk.so-objs		:= common.o database.o package.o archive.o \
			   version.o io.o url.o gunzip.o blob.o hash.o print.o \
			   commit.o solver.o

ifeq ($(TEST),y)
progs-y			+= apk-test
apk-test-objs		:= apk-test.o $(filter-out apk.o, $(apk-objs))
endif

ifeq ($(SHARED_LIBAPK),)
apk-objs		+= $(libapk.so-objs)
apk-test-objs		+= $(libapk.so-objs)
apk.so-objs		+= $(libapk.so-objs)
else
LIBAPK			:= YesPlease
LIBS_apk		:= -lapk
LIBS_apk-test		:= -lapk
LIBS_apk.so		:= -L$(obj) -lapk
endif

ifneq ($(SHARED_LIBAPK),)
shlibs-y		+= libapk.so
LIBAPK-y		:= $(obj)/libapk.so
install-LIBAPK-y	:= $(INSTALLDIR) $(DESTDIR)$(LIBDIR) && \
			   $(INSTALL) $(LIBAPK-y) $(DESTDIR)$(LIBDIR)
endif

CFLAGS_ALL		+= -D_ATFILE_SOURCE
CFLAGS_apk.o		:= -DAPK_VERSION=\"$(FULL_VERSION)\"
CFLAGS_apk-static.o	:= -DAPK_VERSION=\"$(FULL_VERSION)\" -DOPENSSL_NO_ENGINE
CFLAGS_apk-test.o	:= -DAPK_VERSION=\"$(FULL_VERSION)\" -DOPENSSL_NO_ENGINE -DTEST_MODE

progs-$(STATIC)		+= apk.static
apk.static-objs		:= $(filter-out apk.o,$(apk-objs)) apk-static.o
LDFLAGS_apk.static	:= -static
LIBS_apk.static		:= -Wl,--as-needed -ldl -Wl,--no-as-needed
LDFLAGS_apk		+= -nopie -L$(obj)
LDFLAGS_apk-test	+= -nopie -L$(obj)

CFLAGS_ALL		+= $(shell $(PKG_CONFIG) --cflags $(PKGDEPS))
LIBS			:= -Wl,--as-needed \
				$(shell $(PKG_CONFIG) --libs $(PKGDEPS)) \
			   -Wl,--no-as-needed

$(obj)/apk: $(LIBAPK-y)

$(obj)/apk.so: $(LIBAPK-y)

install: $(obj)/apk $(LIBAPK-y) $(LUA_LIB-y)
	$(INSTALLDIR) $(DESTDIR)$(SBINDIR)
	$(INSTALL) $(obj)/apk $(DESTDIR)$(SBINDIR)
	$(install-LIBAPK-y)
	$(install-LUA_LIB-y)