aboutsummaryrefslogblamecommitdiff
path: root/Makefile
blob: 2fc55b0e45285208a21f32fa1c121280e6ae05bb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
       
 
 









                                                
 
                                          
 
 
                                

                
 
                     


                                                 



                              
                                                                  
 
                                       
                                                             

                
                                        
                                                 
                                            
 




                                



                                   
 

                                                                    


                                                                         
 


                                                                       


                                                                               
 


                                             
                       


                                  
 
       

                           
 
                    
                                     



                            






                                     
 
                     













                                                                               





                                                                                       
 
                                                 
 
 
      
                
                                                                  
 
                       
                                                 
.POSIX:


.SUFFIXES:
.SUFFIXES: .in

.in:
	sed \
		-e "s|@HOSTNAME@|`hostname`|g" \
		< $< > $@
	if [ -x $< ]; then chmod +x $@; fi



all: EuAndreh.key guix nix debian homebrew


paku.lock: src/bin/paku Makefile
	touch $@


test-config-files = \
	tests/internet/etc/postfix/main.cf      \
	tests/internet/etc/dkimproxyout.conf    \
	tests/internet/etc/dovecot/dovecot.conf \

derived-assets = \
	$(test-config-files) \

guix: src/org/euandre/packages.scm result-packages result-services

src/org/euandre/packages.scm: paku.lock
	perl src/bin/paku guix > src/org/euandre/packages.scm

result-packages:
	guix build -r $@ -v3 -Lsrc/ -K \
		-f src/org/euandre/packages.scm \
		-f src/org/euandre/queue.scm

local-files = \
	/etc/postfix/master.cf \
	/etc/postfix/main.cf   \

internet-files = \
	$(local-files)            \
	/etc/sasl2/smtpd.conf     \
	/etc/dkimproxyout.conf    \
	/etc/dovecot/dovecot.conf \

result-local: result-packages
	guix system -v3 -Lsrc/ -K -r $@ build tests/local/system.scm
	for f in $(local-files); do \
		diff -U5 --color=always result-local$$f tests/local$$f; \
	done

result-internet: result-packages
	$(MAKE) $(test-config-files)
	guix system -v3 -Lsrc/ -K -r $@ build tests/internet/system.scm
	for f in $(internet-files); do \
		diff -U5 --color=always result-internet$$f tests/internet$$f; \
	done

result-services: result-local result-internet


nix: default.nix result

default.nix: paku.lock
	perl src/bin/paku nix > $@

result:
	nix-build build.nix


debian.mk: paku.lock
	perl src/bin/paku debian > $@

debian: debian.mk
	$(MAKE) -f debian.mk

homebrew: Formula

Formula: paku.lock
	mkdir -p $@
	perl src/bin/paku homebrew $@
	touch $@


public/debian: debian
	mkdir -p $(@D)
	rsync -avzP --delete `$(MAKE) -s -f debian.mk public-dir`/ $@/

public/paku.html: paku.lock src/bin/paku
	mkdir -p $(@D)
	perl src/bin/paku html > $@

public: public/debian public/paku.html


upload: public
	rsync -avzP --delete public/ euandre.org:/srv/www/s/package-repository/

HTTP-REMOTE = 'https://euandre.org/s/package-repository'
GIT-REMOTE  = 'git://euandre.org/package-repository'
check-ubuntu-deb:
	sh tests/vm-check.sh -x -H ubuntu-x86_64-headless -r $(HTTP-REMOTE) -t deb

check-ubuntu-homebrew:
	sh tests/vm-check.sh -x -H ubuntu-x86_64-headless -r $(GIT-REMOTE)  -t homebrew

check: all check-ubuntu-deb check-ubuntu-homebrew


clean:
	rm -rf \
		$(derived-assets) result* .paku/ public/ debian.mk

EuAndreh.key: paku.lock
	gpg --armour --export eu@euandre.org > $@