Back to make
This commit is contained in:
parent
fdea32da36
commit
c1753d8a4c
10
Jamfile
10
Jamfile
|
@ -1,10 +0,0 @@
|
|||
SubDir TOP ;
|
||||
|
||||
Webify index.mdwn ;
|
||||
|
||||
SubInclude TOP papers ;
|
||||
SubInclude TOP projects ;
|
||||
SubInclude TOP poems ;
|
||||
SubInclude TOP src ;
|
||||
SubInclude TOP tartans ;
|
||||
SubInclude TOP toys ;
|
50
Jamrules
50
Jamrules
|
@ -1,50 +0,0 @@
|
|||
MDWNTOHTML = $(TOP)/mdwntohtml ;
|
||||
DIRLIST = $(TOP)/dirlist ;
|
||||
TEMPLATE = $(TOP)/template.xml ;
|
||||
|
||||
rule Copy {
|
||||
local tgt = [ FGristFiles $(1) ] ;
|
||||
local src = [ FGristFiles $(2) ] ;
|
||||
MakeLocate $(tgt) : $(LOCATE_TARGET) ;
|
||||
File $(tgt) : $(src) ;
|
||||
Clean clean : $(tgt) ;
|
||||
}
|
||||
|
||||
rule AutoIndex {
|
||||
local tgt = [ FGristFiles $(1) ] ;
|
||||
local head = [ FGristFiles $(2) ] ;
|
||||
local src = [ FGristFiles $(3) ] ;
|
||||
|
||||
MakeLocate $(tgt) : $(LOCATE_TARGET) ;
|
||||
SEARCH on $(head) = $(SEARCH_SOURCE) ;
|
||||
SEARCH on $(src) = $(SEARCH_SOURCE) ;
|
||||
|
||||
Depends $(tgt) : $(src) $(head) $(DIRLIST) ;
|
||||
Clean clean : $(tgt) ;
|
||||
DirList $(tgt) : $(head) $(src) ;
|
||||
}
|
||||
|
||||
rule Webify {
|
||||
local html ;
|
||||
|
||||
for i in [ FGristFiles $(1) ] {
|
||||
html = $(i:S=.html) ;
|
||||
MakeLocate $(html) : $(LOCATE_TARGET) ;
|
||||
SEARCH on $(i) = $(SEARCH_SOURCE) ;
|
||||
|
||||
Depends $(html) : $(i) $(TEMPLATE) $(MDWNTOHTML) ;
|
||||
Depends all : $(html) ;
|
||||
Clean clean : $(html) ;
|
||||
MdwnToHtml $(html) : $(i) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
actions DirList {
|
||||
$(DIRLIST) $(2) > $(1)
|
||||
}
|
||||
|
||||
actions MdwnToHtml {
|
||||
$(MDWNTOHTML) $(TEMPLATE) < $(2) > $(1)
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
DESTDIR = $(HOME)/public_html
|
||||
|
||||
TEMPLATE = template.xml
|
||||
MDWNTOHTML = ./mdwntohtml $(TEMPLATE)
|
||||
|
||||
# HTML to be generated
|
||||
HTML = index.html
|
||||
|
||||
# Things to copy
|
||||
COPY += mdwntohtml template.xml
|
||||
COPY += face.png geneweb.cgi gitweb.cgi
|
||||
COPY += format.css default.css print.css
|
||||
COPY += gitweb.cgi git-logo.png gitweb.css gitweb.conf
|
||||
|
||||
# Directories in which %.mdwn generates %.html
|
||||
PLAIN = . papers poems misc
|
||||
|
||||
# Other targets for "make all"
|
||||
TARGETS = html copy $(DESTDIR)/tmp $(DESTDIR)/footer.xml $(DESTDIR)/projects
|
||||
|
||||
all: default
|
||||
|
||||
include */*.mk
|
||||
|
||||
$(DESTDIR)/%.html: %.mdwn $(TEMPLATE)
|
||||
@mkdir -p $(dir $@)
|
||||
$(MDWNTOHTML) < $< > $@
|
||||
|
||||
$(DESTDIR)/%: %
|
||||
@mkdir -p $(dir $@)
|
||||
cp $< $@
|
||||
|
||||
$(DESTDIR)/tmp:
|
||||
mkdir -p $@
|
||||
|
||||
$(DESTDIR)/footer.xml: $(TEMPLATE)
|
||||
awk '(/FOOT/) { a += 1; next; } (a == 1) { print; }' $< > $@
|
||||
|
||||
$(DESTDIR)/projects:
|
||||
ln -s $(HOME)/projects $@
|
||||
|
||||
default: $(TARGETS)
|
||||
|
||||
MDWN = $(wildcard $(addsuffix /*.mdwn, $(PLAIN)))
|
||||
HTML += $(patsubst %.mdwn, %.html, $(MDWN))
|
||||
|
||||
html: $(addprefix $(DESTDIR)/, $(HTML))
|
||||
copy: $(addprefix $(DESTDIR)/, $(COPY))
|
||||
|
||||
clean:
|
||||
rm -rf $(wildcard $(DESTDIR)/*)
|
|
@ -33,6 +33,7 @@ pre {
|
|||
#nav {
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
border-top: solid black 1px;
|
||||
}
|
||||
#nav li {
|
||||
display: inline;
|
||||
|
|
Before Width: | Height: | Size: 208 B After Width: | Height: | Size: 208 B |
|
@ -1,3 +1,3 @@
|
|||
#! /bin/sh
|
||||
|
||||
GITWEB_CONFIG=/home/neale/public_html/projects/gitweb.conf /usr/lib/cgi-bin/gitweb.cgi "$@"
|
||||
GITWEB_CONFIG=/home/neale/public_html/gitweb.conf /usr/lib/cgi-bin/gitweb.cgi "$@"
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
$projectroot = "/home/neale/projects";
|
||||
|
||||
$home_link = "/~neale/gitweb.cgi";
|
||||
$home_link_str = "projects";
|
||||
$logo = "/~neale/git-logo.png";
|
||||
|
||||
# file with project list; by default, simply scan the projectroot dir.
|
||||
$projects_list = "/home/neale/projects/public.txt";
|
||||
|
||||
$site_name = "Neale's git repositories";
|
||||
@stylesheets = ("/~neale/default.css", "/~neale/gitweb.css");
|
||||
$site_header = "$projectroot/header.xml";
|
||||
$site_footer = "/home/neale/public_html/footer.xml";
|
||||
|
||||
undef $favicon;
|
|
@ -0,0 +1 @@
|
|||
COPY += $(wildcard images/*.png images/*.gif images/*.jpg)
|
|
@ -1,3 +0,0 @@
|
|||
SubDir TOP misc ;
|
||||
|
||||
Webify drwiii-invaders.mdwn Bohnendämmerung.mdwn ;
|
|
@ -1,7 +0,0 @@
|
|||
[[meta title="Nose Ring"]]
|
||||
|
||||
There was this girl on the bus this morning with a nosering. Well, not a ring per se, but a stud in her nose. She had a very symmetrical face and the nose ring really accentuated that fact, so it was difficult not to stare at her. Or, more poetically, I could have gazed at her visage for hours. I think the poetic version would have been just as creepy as the other one, though.
|
||||
|
||||
It reminded me of when T got her nose pierced. I think she was carpooling with Thom that day, and when he got to school and found me he asked if I'd seen her white or silver nose stud. She had been quiet in the car on the way down, hoping he'd mention something, and he was quiet too, but more out of fear. When she finally chimed up saying "well, do you notice anything?" he just stuttered "uh... no."
|
||||
|
||||
The reason he was so reticent to say anything was the same reason that I was. What with the red swelling around the silver dot of a nosering, we both thought she had grown a little zit overnight.
|
|
@ -1,3 +0,0 @@
|
|||
SubDir TOP papers ;
|
||||
|
||||
Webify index.mdwn reply-to-still-harmful.mdwn sockets.mdwn DNS.mdwn html-tutorial.mdwn digimatrix.mdwn tank-tread.mdwn ;
|
|
@ -4,7 +4,6 @@ These are papers I have written. Most of them were written to explain a
|
|||
concept to someone on woozle. Hopefully other people will find them
|
||||
useful, too.
|
||||
|
||||
* ["Tank Tread" key-signing protocol](tank-tread.html)
|
||||
* [Reply-To Munging Still Considered Harmful](reply-to-still-harmful.html)
|
||||
* [Introduction to TCP Sockets](sockets.html)
|
||||
* [3-Minute HTML Tutorial](html-tutorial.html)
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
SubDir TOP poems ;
|
||||
|
||||
Webify index.mdwn ducks.mdwn goldfish.mdwn lake.mdwn mice.mdwn
|
||||
optimized.mdwn poopy.mdwn sap.mdwn snark.mdwn ;
|
|
@ -1,3 +0,0 @@
|
|||
SubDir TOP projects ;
|
||||
|
||||
Webify index.mdwn ;
|
|
@ -1,18 +0,0 @@
|
|||
$projectroot = "/home/neale/public_html/projects";
|
||||
|
||||
$home_link = "/~neale/gitweb.cgi";
|
||||
$home_link_str = "projects";
|
||||
$logo = "/~neale/projects/git-logo.png";
|
||||
|
||||
# html text to include at home page
|
||||
$home_text = "indextext.html";
|
||||
|
||||
# file with project list; by default, simply scan the projectroot dir.
|
||||
$projects_list = $projectroot;
|
||||
|
||||
$site_name = "Neale's git repositories";
|
||||
@stylesheets = ("/~neale/default.css", "/~neale/projects/gitweb.css");
|
||||
$site_header = "$projectroot/header.xml";
|
||||
$site_footer = "$projectroot/footer.xml";
|
||||
|
||||
undef $favicon;
|
|
@ -1,9 +0,0 @@
|
|||
Title: try again
|
||||
|
||||
This is where I keep my source code, but a web browser won't be able to
|
||||
make much sense of it. Maybe you should try the [gitweb
|
||||
interface](../gitweb.cgi).
|
||||
|
||||
If you came here looking for an RSS feed, just replace "repos/"
|
||||
in the URL with "gitweb.cgi".
|
||||
|
11
src/Jamfile
11
src/Jamfile
|
@ -1,11 +0,0 @@
|
|||
SubDir TOP src ;
|
||||
|
||||
Webify index.mdwn xss.mdwn escm.mdwn firebot.mdwn pysieved.mdwn ;
|
||||
|
||||
SubInclude TOP src eguile ;
|
||||
SubInclude TOP src ipqueue ;
|
||||
SubInclude TOP src postscript ;
|
||||
SubInclude TOP src python ;
|
||||
SubInclude TOP src dwm ;
|
||||
SubInclude TOP src misc ;
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
SubDir TOP src dwm ;
|
||||
|
||||
Webify index.mdwn ;
|
||||
Copy config.h : $(HOME)/src/ports/dwm/config.h ;
|
||||
Copy status.sh : $(HOME)/bin/status ;
|
||||
Copy dwm-button.sh : $(HOME)/bin/dwm-button ;
|
|
@ -0,0 +1,10 @@
|
|||
TARGETS += $(DESTDIR)/src/dwm/config.h $(DESTDIR)/src/dwm/status.sh
|
||||
TARGETS += $(DESTDIR)/src/dwm/dwm-button.sh
|
||||
|
||||
$(DESTDIR)/src/dwm/config.h: $(HOME)/src/ports/dwm/config.h
|
||||
@mkdir -p $(@D)
|
||||
cp $< $@
|
||||
|
||||
$(DESTDIR)/src/dwm/%.sh: $(HOME)/bin/%
|
||||
@mkdir -p $(@D)
|
||||
cp $< $@
|
|
@ -1,3 +0,0 @@
|
|||
SubDir TOP src eguile ;
|
||||
|
||||
Webify index.mdwn ;
|
|
@ -8,7 +8,7 @@ of these packages.
|
|||
|
||||
Networky things
|
||||
-------------------------------
|
||||
* [pysieved](pysieved/), a Python ManageSieve server
|
||||
* [pysieved](pysieved.html), a Python ManageSieve server
|
||||
* [Firebot](firebot.html), an easily-extended IRC bot in continuous use since 1996
|
||||
* [Python IPQUEUE library](ipqueue/)
|
||||
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
SubDir TOP src ipqueue ;
|
||||
|
||||
Webify index.mdwn ;
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,4 +0,0 @@
|
|||
SubDir TOP src misc ;
|
||||
|
||||
Webify index.mdwn ;
|
||||
AutoIndex index.mdwn : index.head.mdwn : 9p.scm ;
|
|
@ -1,4 +0,0 @@
|
|||
SubDir TOP src postscript ;
|
||||
|
||||
Webify index.mdwn ;
|
||||
AutoIndex index.mdwn : index.head.mdwn : alice.ps banner.ps emergency-card.ps graph-paper.ps logo.ps page_dimensions.ps ruled-paper.ps skel.ps ;
|
|
@ -1,4 +0,0 @@
|
|||
== PostScript Hacks ==
|
||||
|
||||
Here are some little programs that are either too small or too
|
||||
self-explanatory to deserve their own web pages.
|
|
@ -1,8 +0,0 @@
|
|||
<?scm (define title "PostScript Hacks") ?>
|
||||
<?scm (define (body) ?>
|
||||
<p>Here is some neat stuff that's too small or self-explanatory
|
||||
to deserve its own web page.</p>
|
||||
<dl>
|
||||
<?scm (html-index-files (string-split "alice.ps banner.ps emergency-card.ps graph-paper.ps logo.ps page_dimensions.ps resume.ps ruled-paper.ps skel.ps" " ")) ?>
|
||||
</dl>
|
||||
<?scm ) ?>
|
|
@ -1,89 +1,4 @@
|
|||
[[!meta title="pysieved: Python Managesieve Server"]]
|
||||
Title: pysieved: Python Managesieve Server
|
||||
|
||||
This is a GPL managesieve server. It uses a plug-in architecture to
|
||||
support different authentication, homedir lookup, and storage
|
||||
back-ends.
|
||||
|
||||
I wrote this so I could use avelsieve (SquirrelMail) with Postfix
|
||||
and Dovecot. It should work with other managesieve clients too.
|
||||
Please share with me your successes and failures.
|
||||
|
||||
|
||||
Plugin architecture
|
||||
-------------------
|
||||
|
||||
The server ships with the following plug-ins:
|
||||
|
||||
Authentication:
|
||||
|
||||
* Dovecot
|
||||
* PAM
|
||||
* SASL
|
||||
* MySQL
|
||||
|
||||
Homedir lookup & session initiation:
|
||||
|
||||
* Dovecot
|
||||
* /etc/passwd
|
||||
* MySQL
|
||||
* simple virtual hosting (eg. /var/lib/virtual/username)
|
||||
|
||||
Storage:
|
||||
|
||||
* Dovecot
|
||||
|
||||
|
||||
Additional back-ends are easy to write, just copy one of the existing
|
||||
back-ends and start hacking. No modifications are needed to any
|
||||
existing code, so you don't have to worry about things like the
|
||||
managesieve protocol or forking.
|
||||
|
||||
|
||||
Download
|
||||
--------
|
||||
|
||||
[Version 1.0](http://woozle.org/~neale/gitweb.cgi?p=pysieved;a=commit;h=1.0)
|
||||
was released on May 10, 2008 after release candidate 3 had been out for
|
||||
6 weeks with no bug reports.
|
||||
|
||||
You can get the latest version [as
|
||||
a tarball](http://woozle.org/~neale/gitweb.cgi?p=pysieved;a=snapshot;h=HEAD),
|
||||
or with git:
|
||||
|
||||
git clone http://woozle.org/~neale/repos/pysieved
|
||||
|
||||
A [web view of revisions](http://woozle.org/~neale/gitweb.cgi?p=pysieved) is
|
||||
also available for those without git.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Put all the files somewhere. I put mine in /usr/local/lib/pysieved.
|
||||
Copy pysieved.ini into /usr/local/etc/, and edit to taste. It's
|
||||
commented.
|
||||
|
||||
To run from inetd, add the following line to /etc/inetd.conf:
|
||||
|
||||
sieve stream tcp nowait root /usr/bin/python python /usr/local/lib/pysieved/pysieved.py --inetd
|
||||
|
||||
To run as a daemon, just run
|
||||
|
||||
python pysieved.py
|
||||
|
||||
|
||||
|
||||
|
||||
Mail list / IRC channel
|
||||
-----------------------
|
||||
|
||||
If you use pysieved, please join the pysieved mail list by emailing
|
||||
[pysieved-subscribe@woozle.org](mailto:pysieved-subscribe@woozle.org) or
|
||||
visiting the [subscription page](http://woozle.org/lists/pysieved).
|
||||
|
||||
To talk about pysieved on IRC, join us in
|
||||
[#pysieved on irc.oftc.net](irc://irc.oftc.net/pysieved).
|
||||
|
||||
--------
|
||||
|
||||
Neale Pickett <neale@woozle.org>
|
||||
pysieved is a GPL managesieve server. It is now hosted on gitorious, at
|
||||
<http://www.gitorious.net/pysieved/pages/Home>
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
SubDir TOP src python ;
|
||||
|
||||
Webify index.mdwn ;
|
||||
AutoIndex index.mdwn : index.head.mdwn : htmlpp.py ndstrunc.py snpplib.py spampot.py watch.py spamfairy.py mail-expire.py ;
|
||||
Copy spamfairy.py : /usr/local/bin/spamfairy ;
|
||||
Copy mail-expire.py : /usr/local/bin/mail-expire ;
|
|
@ -0,0 +1,12 @@
|
|||
HTML += $(patsubst %.mdwn, %.html, $(wildcard src/*.mdwn src/*/*.mdwn))
|
||||
|
||||
HTML += $(patsubst %/index.head.mdwn, %/index.html, $(wildcard src/*/index.head.mdwn))
|
||||
|
||||
COPY += $(wildcard src/ipqueue/*.tar.*) src/eguile/eguile.scm
|
||||
|
||||
include src/dwm/dwm.mk
|
||||
|
||||
$(DESTDIR)/src/%/index.html: src/%/index.head.mdwn src/%/*
|
||||
@mkdir -p $(@D)
|
||||
cp $(wordlist 2, $(words $^), $^) $(@D)
|
||||
./dirlist $+ | $(MDWNTOHTML) > $@
|
|
@ -1,50 +0,0 @@
|
|||
SubDir TOP tartans ;
|
||||
|
||||
TARTAN_TMPL = $(SUBDIR)/tartan.m4 ;
|
||||
TARTANTOMDWN = $(SUBDIR)/tartantomdwn ;
|
||||
LSTARTANS = $(SUBDIR)/lstartans ;
|
||||
LOOM = $(SUBDIR)/loom.py ;
|
||||
|
||||
rule Tartan {
|
||||
local tartans = [ FGristFiles $(1:S=.tartan) ] ;
|
||||
|
||||
DIRLIST on [ FGristFiles index.mdwn ] = $(LSTARTANS) ;
|
||||
AutoIndex index.mdwn : index.head.mdwn : $(1:S=.tartan) ;
|
||||
|
||||
for t in $(tartans) {
|
||||
local png = $(t:S=.png:D=img:G=) ;
|
||||
local mdwn = $(t:S=.mdwn) ;
|
||||
|
||||
TartanToMdwn $(mdwn) : $(t) ;
|
||||
TartanToPng $(png) : $(t) ;
|
||||
Webify $(mdwn) ;
|
||||
Depends $(mdwn:S=.html) : $(png) ;
|
||||
}
|
||||
}
|
||||
|
||||
rule TartanToMdwn {
|
||||
Depends $(1) : $(2) $(TARTAN_TMPL) $(TARTANTOMDWN) ;
|
||||
Clean clean : $(1) ;
|
||||
MakeLocate $(1) : $(LOCATE_TARGET) ;
|
||||
SEARCH on $(2) = $(SEARCH_SOURCE) ;
|
||||
}
|
||||
|
||||
rule TartanToPng {
|
||||
Depends $(1) : $(2) $(LOOM) ;
|
||||
Clean clean : $(1) ;
|
||||
MakeLocate $(1) : $(LOCATE_TARGET) ;
|
||||
SEARCH on $(2) = $(SEARCH_SOURCE) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
actions TartanToMdwn {
|
||||
$(TARTANTOMDWN) $(1:S=.png:D=img) $(TARTAN_TMPL) < $(2) > $(1)
|
||||
}
|
||||
|
||||
actions TartanToPng {
|
||||
$(LOOM) < $(2) > $(1)
|
||||
}
|
||||
|
||||
Webify index.mdwn ;
|
||||
Tartan albuquerque armstrong az blackwatch buchanan co nm nmloe nv ok pjs pjs2 shrek tx ut wa or ;
|
|
@ -1,5 +1,5 @@
|
|||
Name: Arizona
|
||||
Sett: W2 G3 R4 G28 B3 (963)8
|
||||
Sett: W2 G3 R4 G28 B3 BR8
|
||||
|
||||
Based on a jpeg I found on a geocities homepage. Surprisingly,
|
||||
that jpeg was the only mention I could find on the net of what
|
||||
|
|
|
@ -4,7 +4,7 @@ I like tartans, they appeal to my geeky need for symmetry and elegant
|
|||
description.
|
||||
|
||||
<div class="figure">
|
||||
<img src="img/nmloe.png" alt="tartan image" />
|
||||
<img src="nmloe.png" alt="tartan image" />
|
||||
<br />
|
||||
<a href="nmloe.html">
|
||||
New Mexico Land Of Enchantment
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
TARTAN_TEMPLATE = tartans/tartan.m4
|
||||
TARTAN_LIST = $(wildcard tartans/*.tartan)
|
||||
TARTAN_PNG = $(patsubst %.tartan, %.png, $(TARTAN_LIST))
|
||||
TARTAN_TOMDWN = tartans/tartantomdwn
|
||||
|
||||
COPY += tartans/design.cgi tartans/loom.py $(TARTAN_TOMDWN) $(TARTAN_TEMPLATE)
|
||||
HTML += tartans/index.html
|
||||
HTML += $(patsubst %.tartan, %.html, $(TARTAN_LIST))
|
||||
TARGETS += $(addprefix $(DESTDIR)/, $(TARTAN_PNG))
|
||||
|
||||
$(DESTDIR)/tartans/%.html: tartans/%.tartan $(TARTAN_TEMPLATE)
|
||||
@mkdir -p $(@D)
|
||||
$(TARTAN_TOMDWN) $*.png $(TARTAN_TEMPLATE) < $< | $(MDWNTOHTML) > $@
|
||||
|
||||
$(DESTDIR)/tartans/%.png: tartans/%.tartan
|
||||
@mkdir -p $(@D)
|
||||
tartans/loom.py < $< > $@
|
||||
|
||||
$(DESTDIR)/tartans/index.html: tartans/index.head.mdwn $(wildcard tartans/*.tartan)
|
||||
@mkdir -p $(@D)
|
||||
cp $(wordlist 2, $(words $^), $^) $(@D)
|
||||
tartans/lstartans $+ | $(MDWNTOHTML) > $@
|
|
@ -16,6 +16,7 @@
|
|||
<body>
|
||||
<h1>TITLE</h1>
|
||||
divert(1)
|
||||
dnl FOOT BEGIN
|
||||
<ul id="nav">
|
||||
<li><a href="/~neale/src/" title="Free Software">Software</a></li>
|
||||
<li><a href="/~neale/toys/" title="Various fun things">Toys</a></li>
|
||||
|
@ -27,6 +28,7 @@ divert(1)
|
|||
<address>
|
||||
Neale Pickett <<a href="mailto:neale@woozle.org">neale@woozle.org</a>>
|
||||
</address>
|
||||
dnl FOOT END
|
||||
</body>
|
||||
</html>
|
||||
divert(0)
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
SubDir TOP toys ;
|
||||
|
||||
Webify index.mdwn reiki.mdwn omg-magic.mdwn fungame.mdwn ;
|
|
@ -0,0 +1,3 @@
|
|||
PLAIN += toys
|
||||
|
||||
COPY += $(wildcard toys/*.cgi toys/cards/*.png)
|
Loading…
Reference in New Issue