]> bicyclesonthemoon.info Git - ott/post/blob - makefile.1.mak
dont' wait for mirror edit page (temporary hack)
[ott/post] / makefile.1.mak
1 # "makefile" is automatically generated from "makefile.1.mak"\r
2\r
3 # Copyright (C) 2023, 2024 Balthasar SzczepaƄski\r
4\r
5 # This program is free software: you can redistribute it and/or modify\r
6 # it under the terms of the GNU Affero General Public License as\r
7 # published by the Free Software Foundation, either version 3 of the\r
8 # License, or (at your option) any later version.\r
9\r
10 # This program is distributed in the hope that it will be useful,\r
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 # GNU Affero General Public License for more details.\r
14\r
15 # You should have received a copy of the GNU Affero General Public License\r
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.\r
17 \r
18 DEFAULT_TARGET = debug\r
19 ifndef TARGET\r
20 TARGET = $(DEFAULT_TARGET) ###MAKE_TARGET:\r
21 # when want to change target run this first:\r
22 # make -B TARGET=target_name makefile\r
23 endif\r
24 PERL = perl\r
25 \r
26 ###MAKE_CC:    CC=gcc\r
27 ###MAKE_CF:    CF=-g -Wall\r
28 \r
29 ###MAKE_CHMOD: CHMOD = chmod\r
30 ###MAKE_CP:    CP    = cp\r
31 ###MAKE_MKDIR: MKDIR = mkdir\r
32 ###MAKE_RM:    RM    = rm\r
33 ###MAKE_PERL:  PERL  = perl\r
34 \r
35 ###MAKE_BIN_PATH:       BIN_PATH       = /botm/bin/post\r
36 ###MAKE_DATA_PATH:      DATA_PATH      = /botm/data/post\r
37 ###MAKE_DATA_FAIL_PATH: DATA_FAIL_PATH = /botm/data/post/fail\r
38 ###MAKE_DATA_SENT_PATH: DATA_SENT_PATH = /botm/data/post/sent\r
39 ###MAKE_DATA_WAIT_PATH: DATA_WAIT_PATH = /botm/data/post/wait\r
40 ###MAKE_LIB_PATH:       LIB_PATH       = /botm/lib/post\r
41 ###MAKE_TMP_PATH:       TMP_PATH       = /botm/tmp/post\r
42 \r
43 \r
44 CONFIGFILE = settings-$(TARGET).txt settings.txt\r
45 DEFAULT_CONFIGFILE = settings-$(DEFAULT_TARGET).txt settings.txt\r
46 \r
47 # The configuration tool\r
48 CONFIGURE_CMD = $(PERL) ./configure.pl --do $(CONFIGFILE)\r
49 \r
50 # keep these 2 lists in the same order!:\r
51 GENERATE_FROM=\\r
52 sendpost.1.pl\\r
53 preview.1.pl\\r
54 post_common.1.pm\r
55 #addpost.1.pl\\r
56 \r
57 TO_GENERATE=\\r
58 sendpost.pl\\r
59 preview.pl\\r
60 post_common.pm\r
61 #addpost.pl\\r
62 \r
63 DIR=\\r
64 $(BIN_PATH)\\r
65 $(DATA_PATH)\\r
66 $(DATA_FAIL_PATH)\\r
67 $(DATA_SENT_PATH)\\r
68 $(DATA_WAIT_PATH)\\r
69 $(LIB_PATH)\\r
70 $(TMP_PATH)\r
71 \r
72 HIDDEN_DIR=\\r
73 $(DATA_FAIL_PATH)\\r
74 $(DATA_SENT_PATH)\\r
75 $(DATA_WAIT_PATH)\\r
76 $(TMP_PATH)\r
77 \r
78 SETUID=\\r
79 sendpost\r
80 #addpost\\r
81 \r
82 \r
83 EXEC=\\r
84 sendpost.pl\\r
85 preview.pl\r
86 #addpost.pl\\r
87 \r
88 PERL_WRAP_EXEC=\\r
89 addpost\\r
90 sendpost\\r
91 preview\r
92 \r
93 \r
94 BIN=\\r
95 $(EXEC)\\r
96 $(PERL_WRAP_EXEC)\r
97 \r
98 LIB=\\r
99 botm-common/botm_common.pm\\r
100 post_common.pm\r
101 \r
102 all: $(BIN) setuid exec\r
103         \r
104 makefile: makefile.1.mak $(CONFIGFILE) configure.pl\r
105         $(CONFIGURE_CMD) --in makefile.1.mak --out makefile\r
106         \r
107 configure.pl: $(CONFIGFILE) config/configure.1.pl\r
108         $(PERL) config/configure.1.pl target=direct settings-$(TARGET).txt config/settings.txt --in config/configure.1.pl --out configure.pl\r
109 \r
110 \r
111 $(TO_GENERATE): $(GENERATE_FROM) $(CONFIGFILE) configure.pl\r
112         $(CONFIGURE_CMD) --in $(GENERATE_FROM) --out $(TO_GENERATE)\r
113 \r
114 $(PERL_WRAP_EXEC): %: exec/exec.c exec/settings.txt configure.pl\r
115         $(PERL) configure.pl path=$(BIN_PATH) target=$*.pl exec/settings.txt --in exec/exec.c --out $*.c\r
116         $(CC) $(CF) -o $@ $*.c\r
117 \r
118 exec: $(EXEC)\r
119         $(CHMOD) +x $(EXEC)\r
120 \r
121 setuid: $(SETUID)\r
122         $(CHMOD) u+s,g+s $(SETUID)\r
123 \r
124 \r
125 mktree:\r
126         $(MKDIR) -p $(DIR)\r
127         $(CHMOD) g-r,g-w,g-x,o-r,o-w,o-x $(HIDDEN_DIR)\r
128 \r
129 ifdef BIN_PATH\r
130 cp_bin: $(BIN) setuid exec | mktree\r
131         $(RM) -f $(BIN_PATH)/*\r
132         $(CP) -p $(BIN) $(BIN_PATH)\r
133 endif\r
134 \r
135 ifdef LIB_PATH\r
136 cp_lib: $(LIB) | mktree\r
137         $(RM) -f $(LIB_PATH)/*\r
138         $(CP) -p $(LIB) $(LIB_PATH)\r
139 endif\r
140 \r
141 install: all cp_bin cp_lib\r
142         \r
143 clean:\r
144         $(RM) -f configure.pl $(TO_GENERATE) $(PERL_WRAP_EXEC) $(PERL_WRAP_EXEC:=.c)\r
145         $(PERL) config/configure.1.pl --do $(DEFAULT_CONFIGFILE) --in makefile.1.mak --out makefile\r
146 \r
147 PHONY: all clean install setuid exec mktree cp_bin cp_lib\r
148 \r
149 \r
150 \r
151 e:\r
152 # CC=gcc\r
153 # CC2=g++\r
154 # CF=-g -Wall\r
155 # # LF=-lIL\r
156 # LF2=-lcgi\r
157 \r
158 # all: posted mpview remove post bot5 upload viewer enable\r
159 \r
160 # bot5: bot5.c post.awk mpost.awk makefile\r
161         # $(CC) $(CF) -o bot5 bot5.c\r
162 \r
163 # # deliver: deliver.c\r
164 # # $(CC) $(CF) -o deliver deliver.c\r
165 \r
166 # remove: remove.c verify.awk\r
167         # $(CC) $(CF) -o remove remove.c $(LF2)\r
168 \r
169 # mpview: mpview.c mview.awk verify.awk makefile\r
170         # $(CC) $(CF) -o mpview mpview.c $(LF2)\r
171 \r
172 # posted: posted.c posted.awk makefile\r
173         # $(CC) $(CF) -o posted posted.c $(LF2)\r
174 \r
175 # post: post.cpp preview.awk bb2html.awk verify.awk makefile\r
176         # $(CC2) $(CF) -o post post.cpp $(LF2)\r
177 \r
178 # upload: upload.c upload.awk makefile\r
179         # $(CC) $(CF) -o upload upload.c $(LF2)\r
180 \r
181 # viewer: viewer.c makefile\r
182         # $(CC) $(CF) -o viewer viewer.c $(LF2)\r
183 \r
184 # enable: posted mpview remove post upload viewer\r
185         # chmod u+s posted mpview remove post upload viewer\r