aboutsummaryrefslogblamecommitdiffstats
path: root/Makefile
blob: c26fd2d3319cc57e371e0827548a4b9f1d84384b (plain) (tree)
1
2
3
4
5
6
7



                              


                                  






                                                   
                          





                               
                                                                  
                        

     








                                           




                                            
                               


                                               













                                                        


                      
                                                           


                      
                                                           


                      
                                                       


                      
                                                                 


                      
                                                                       


                      
                                                                   


                      
                                                                   


                      
                                                                     


                      
                                                     


                      
                                                           


                      
                                                       


                      
 
                         





                      



















                                                                                    
prefix = /usr/local/lua52
libdir = $(prefix)/lib
datadir = $(prefix)/share
includedir = $(prefix)/include
luainclude = $(includedir)/lua/5.2
luapath = $(datadir)/lua/5.2
luacpath = $(libdir)/lua/5.2

LUAC = $(prefix)/bin/luac

VENDOR.OS = $(shell ../mk/vendor.os)
VENDOR.CC = $(shell env CC="${CC}" ../mk/vendor.cc)


CPPFLAGS = -I$(luainclude)

ifeq ($(VENDOR.CC), sunpro)
DFLAGS = -g
CFLAGS = -xcode=pic13 $(DFLAGS)
CPPFLAGS += -DOPENSSL_NO_EC
else
DFLAGS = -g -Wall -Wextra -Wno-deprecated-declarations -Wno-unused
CFLAGS = -fPIC $(DFLAGS)
endif

LDFLAGS = -lssl -lcrypto

ifeq ($(VENDOR.OS), Darwin)
SOFLAGS = -bundle -undefined dynamic_lookup
else
SOFLAGS = -shared
endif


all: openssl.so

openssl.so: openssl.o
	$(CC) -o $@ $^ $(SOFLAGS) $(LDFLAGS)

openssl.o: openssl.c compat52.h
	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<


install: $(DESTDIR)$(luacpath)/_openssl.so \
         $(DESTDIR)$(luapath)/openssl/bignum.lua \
         $(DESTDIR)$(luapath)/openssl/pubkey.lua \
         $(DESTDIR)$(luapath)/openssl/x509.lua \
         $(DESTDIR)$(luapath)/openssl/x509/name.lua \
         $(DESTDIR)$(luapath)/openssl/x509/altname.lua \
         $(DESTDIR)$(luapath)/openssl/x509/chain.lua \
         $(DESTDIR)$(luapath)/openssl/x509/store.lua \
         $(DESTDIR)$(luapath)/openssl/ssl/context.lua \
         $(DESTDIR)$(luapath)/openssl/ssl.lua \
         $(DESTDIR)$(luapath)/openssl/digest.lua \
         $(DESTDIR)$(luapath)/openssl/hmac.lua

$(DESTDIR)$(luacpath)/_openssl.so: openssl.so
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/bignum.lua: openssl.bignum.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/pubkey.lua: openssl.pubkey.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/x509.lua: openssl.x509.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/x509/name.lua: openssl.x509.name.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/x509/altname.lua: openssl.x509.altname.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/x509/chain.lua: openssl.x509.chain.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/x509/store.lua: openssl.x509.store.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/ssl/context.lua: openssl.ssl.context.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/ssl.lua: openssl.ssl.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/digest.lua: openssl.digest.lua
	mkdir -p $(@D)
	cp -p $< $@

$(DESTDIR)$(luapath)/openssl/hmac.lua: openssl.hmac.lua
	mkdir -p $(@D)
	cp -p $< $@


.PHONY: clean clean~ help

clean:
	rm -f *.so *.o

clean~: clean
	rm -f *~

help:
	@echo "Available targets:"
	@echo ""
	@echo "       all - build all binary targets"
	@echo "openssl.so - build openssl.so module"
	@echo "   install - install openssl modules"
	@echo "     clean - rm binary targets, object files, debugging symbols, etc"
	@echo "    clean~ - clean + rm *~"
	@echo "      help - echo this help message"
	@echo ""
	@echo "Some important Make variables:"
	@echo ""
	@echo "    prefix - path to install root"
	@echo 'luainclude - path to Lua headers ($$(prefix)/include/lua/5.2)'
	@echo '   luapath - install path for Lua modules ($$(prefix)/share/lua/5.2)'
	@echo '  luacpath - install path for Lua C modules ($$(prefix)/lib/lua/5.2)'
	@echo '      LUAC - path to luac utility ($$(prefix)/bin/luac)'
	@echo ""
	@echo "Report bugs to <william@25thandClement.com>"