aboutsummaryrefslogblamecommitdiff
path: root/Makefile
blob: 0f011f9a274d0177ae004cb2a9281f6e822fbd05 (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



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 makefile > $@

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


public/debian: debian.mk
	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'
check-ubuntu:
	sh tests/vm-check.sh -x -t deb -H ubuntu-x86_64-headless -r $(HTTP-REMOTE)

check: check-ubuntu


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

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