File reproducible.patch of Package netrek-client-cow
From 3fb7f1407ae463e53ab5056029616cb5a52df9e1 Mon Sep 17 00:00:00 2001
From: James Cameron <quozl@laptop.org>
Date: Sat, 4 Sep 2021 14:43:11 +1000
Subject: [PATCH] Support reproducible builds
Our use of mkcflags embeds random data into the binary, which makes
reproducible builds impractical.
Most of the mkcflags output was to support features we no longer need,
so these features are removed;
- client binary expiry date,
- self identifying version response (the Hog Call, five spaces),
- open browser for upgrade, release notes, or bug reports,
- command line version display; use your package manager.
Signed-off-by: James Cameron <quozl@laptop.org>
---
Makefile | 4 +-
config.h.in | 5 --
cow.opt | 2 +-
cowapi.h | 4 --
cowmain.c | 8 ----
cowmain.h | 1 -
dmessage.c | 13 +++---
docwin.c | 11 ++---
main.c | 127 ++-------------------------------------------------
manifest | 1 -
mkcflags.c | 117 -----------------------------------------------
mkfilent.mak | 12 +----
newwin.c | 7 ++-
system.mk.in | 21 +++------
14 files changed, 29 insertions(+), 304 deletions(-)
delete mode 100644 mkcflags.c
diff --git a/Makefile b/Makefile
index be412fd..c5598b3 100644
--- a/Makefile
+++ b/Makefile
@@ -23,9 +23,9 @@ clean:
rm -f *.o $(OBJ) $(SHAREDTARGET)
reallyclean: clean
- rm -f netrek-client-cow name mkcflags \
+ rm -f netrek-client-cow name \
config.h system.mk config.status config.log config.cache \
- null netrek.shared lib* cflags.c \
+ null netrek.shared lib* \
po/Makefile po/Makefile.in
distclean: clean reallyclean
diff --git a/config.h.in b/config.h.in
index c8eea7a..c045008 100644
--- a/config.h.in
+++ b/config.h.in
@@ -65,11 +65,6 @@
/* CORRUPTED_PACKETS - prevents some seg faults but verbose output */
#define CORRUPTED_PACKETS
-/* EXPIRE=# - number of days this version will work for */
-#if 0 /* ndef STABLE expire function removed */
-#define EXPIRE 365
-#endif
-
/* ARMY_SLIDER - some sort of funky status window thing */
#define ARMY_SLIDER
diff --git a/cow.opt b/cow.opt
index c4a0cc9..5b2690e 100644
--- a/cow.opt
+++ b/cow.opt
@@ -5,7 +5,7 @@
! Force the modules containing symbols that duplicate DEC C run time library
! entry points to be resolved first, avoiding use of the RTL.
!
-cluster=main,,,main,newwin,stats,pingstats,getname,cflags,data,sintab
+cluster=main,,,main,newwin,stats,pingstats,getname,data,sintab
!
! Find all other modules here
!
diff --git a/cowapi.h b/cowapi.h
index 28dd7e6..a6cb633 100644
--- a/cowapi.h
+++ b/cowapi.h
@@ -43,10 +43,6 @@ extern int usemeta;
/* Global COW Variables which may be set and/or used outside */
-/* Version Information */
-extern char cflags[], arch[], cdate[], cbugs[], cowid[], cwho[];
-extern struct timeval tv_ctime;
-
#ifndef PSEUDOSIZE
#define PSEUDOSIZE 16
#endif
diff --git a/cowmain.c b/cowmain.c
index 5d5f2be..f1f4398 100644
--- a/cowmain.c
+++ b/cowmain.c
@@ -52,8 +52,6 @@
int takeNearest = 0;
-extern char cflags[], arch[], cdate[], cbugs[], cowid[], cwho[];
-
jmp_buf env;
int isFirstEntry;
@@ -529,12 +527,6 @@ extern int log_packets;
#endif
-char *
- query_cowid(void)
-{
- return cowid;
-}
-
/* Variables passing Optional Arguments to cowmain */
char *deffile = NULL;
diff --git a/cowmain.h b/cowmain.h
index 5bf532f..c474630 100644
--- a/cowmain.h
+++ b/cowmain.h
@@ -1,2 +1 @@
-char *query_cowid(void);
void terminate(int error);
diff --git a/dmessage.c b/dmessage.c
index 76e79b1..d940504 100644
--- a/dmessage.c
+++ b/dmessage.c
@@ -25,7 +25,6 @@
#include "dmessage.h"
-extern char cowid[];
static int version_sent = 0;
static int instr(char *string1, char *string2);
@@ -120,7 +119,7 @@ void dmessage(char *message, unsigned char flags, unsigned char from, unsigned c
!strncmp(message + 10, " ", 5) && (message[15] == 0))
{
printf("dmessage:flags==team PIG call from=%d\n", from);
- if (!versionHide) pmessage(cowid, from, MINDIV);
+ if (!versionHide) pmessage(version, from, MINDIV);
}
}
@@ -138,7 +137,7 @@ void dmessage(char *message, unsigned char flags, unsigned char from, unsigned c
if (!strncmp(message + 10, " ", 5) && (message[15] == 0))
{
printf("dmessage:MINDIV PIG call from=%d\n", from);
- if (!versionHide) pmessage(cowid, from, MINDIV);
+ if (!versionHide) pmessage(version, from, MINDIV);
}
}
else
@@ -149,7 +148,7 @@ void dmessage(char *message, unsigned char flags, unsigned char from, unsigned c
W_WriteText(messwa, 0, 0, color, message, len, 0);
if (!strncmp(message + 10, " ", 5) && (message[15] == 0))
{
- if (!versionHide) pmessage(cowid, from, MINDIV);
+ if (!versionHide) pmessage(version, from, MINDIV);
}
}
W_WriteText(reviewWin, 0, 0, color, message, len, 0);
@@ -192,7 +191,7 @@ void dmessage(char *message, unsigned char flags, unsigned char from, unsigned c
W_WriteText(messwt, 0, 0, color, message, len, 0);
if (!strncmp(message + 10, " ", 5) && (message[15] == 0))
{
- if (!versionHide) pmessage(cowid, from, MINDIV);
+ if (!versionHide) pmessage(version, from, MINDIV);
}
if (logmess)
{
@@ -214,7 +213,7 @@ void dmessage(char *message, unsigned char flags, unsigned char from, unsigned c
W_WriteText(messwi, 0, 0, color, message, len, 0);
if (!strncmp(message + 10, " ", 5) && (message[15] == 0))
{
- if (!versionHide) pmessage(cowid, from, MINDIV);
+ if (!versionHide) pmessage(version, from, MINDIV);
}
if (logmess)
{
@@ -235,7 +234,7 @@ void dmessage(char *message, unsigned char flags, unsigned char from, unsigned c
W_WriteText(messwa, 0, 0, color, message, len, 0);
if (!strncmp(message + 10, " ", 5) && (message[15] == 0))
{
- if (!versionHide) pmessage(cowid, from, MINDIV);
+ if (!versionHide) pmessage(version, from, MINDIV);
}
if (logmess)
{
diff --git a/docwin.c b/docwin.c
index df46892..ff41a67 100644
--- a/docwin.c
+++ b/docwin.c
@@ -12,8 +12,7 @@
#include "cowmain.h"
#include "defaults.h"
#include "docwin.h"
-
-extern char cbugs[];
+#include "version.h"
#define NORMAL 0
#define BOLD 1
@@ -48,7 +47,7 @@ void showdocs(int atline)
if (!W_IsMapped(docwin))
W_MapWindow(docwin);
- snprintf(buf, sizeof(buf), "--- %s ---", (char *) query_cowid());
+ snprintf(buf, sizeof(buf), "--- %s ---", version);
length = strlen(buf);
/* using GWINSIDE instead of TWINSIDE because with small_screen set it
@@ -57,7 +56,7 @@ void showdocs(int atline)
center = GWINSIDE / 2 - (length * W_Textwidth) / 2;
W_WriteText(docwin, center, W_Textheight, textColor,
buf, length, W_BoldFont);
- snprintf(buf, sizeof(buf), "%s", cbugs);
+ snprintf(buf, sizeof(buf), "feedback to: quozl@us.netrek.org");
length = strlen(buf);
center = GWINSIDE / 2 - (length * W_Textwidth) / 2;
W_WriteText(docwin, center, 3 * W_Textheight, textColor,
@@ -215,12 +214,12 @@ void showxtrekrc(int atline)
if (!W_IsMapped(xtrekrcwin))
W_MapWindow(xtrekrcwin);
- snprintf(buf, sizeof(buf), "--- %s ---", (char *) query_cowid());
+ snprintf(buf, sizeof(buf), "--- %s ---", version);
length = strlen(buf);
center = GWINSIDE / 2 - (length * W_Textwidth) / 2;
W_WriteText(xtrekrcwin, center, W_Textheight, textColor,
buf, length, W_BoldFont);
- snprintf(buf, sizeof(buf), "%s", cbugs);
+ snprintf(buf, sizeof(buf), "feedback to: quozl@us.netrek.org");
length = strlen(buf);
center = GWINSIDE / 2 - (length * W_Textwidth) / 2;
W_WriteText(xtrekrcwin, center, 3 * W_Textheight, textColor,
diff --git a/main.c b/main.c
index 4fe35f5..f89935f 100644
--- a/main.c
+++ b/main.c
@@ -4,20 +4,16 @@
#include "copyright.h"
#include <stdio.h>
+#include <stdlib.h>
#include INC_STRINGS
#include <time.h>
#include INC_SYS_TIME
#include <locale.h>
-#ifdef TOOLS
-#include <stdlib.h>
-#include "version.h"
-#include "patchlevel.h"
-#endif
-
#include "cowapi.h"
#include "defs.h"
#include "defaults.h"
+#include "version.h"
#ifdef GATEWAY
extern int gw_serv_port, gw_port, gw_local_port; /* UDP */
@@ -31,11 +27,6 @@ extern int logmess;
char *servertmp = NULL;
-#ifdef EXPIRE
-char exptime[27];
-
-#endif
-
#define NO_PIXMAPS 0x8000
extern int pixMissing;
@@ -55,16 +46,6 @@ int main2(int argc, char **argv)
char *name, *ptr;
-#ifdef TOOLS
- char url[1024];
-
-#endif
-
-#ifdef EXPIRE
- time_t expday, daycomp, today;
-
-#endif
-
#ifdef GATEWAY
int hset = 0;
@@ -89,17 +70,6 @@ int main2(int argc, char **argv)
netaddr = 0;
#endif
-#ifdef EXPIRE
- daycomp = tv_ctime.tv_sec;
- expday = daycomp + EXPIRE * 24 * 3600;
- today = time(NULL);
- STRNCPY(exptime, ctime(&expday), sizeof(exptime));
-#endif
-
-#ifdef TOOLS
- url[0] = '\0';
-#endif
-
pseudo[0] = defpasswd[0] = '\0';
while (*argv)
@@ -332,26 +302,6 @@ int main2(int argc, char **argv)
case 'D':
debug++;
break;
- case 'v':
- printf("%s\n", cowid);
- printf("Compile options used: %s\n", cflags);
- printf("Compiled on %s by %s\n", cdate, cwho);
- printf("%s\n", cbugs);
-
-#ifdef RSA
- printf("RSA key installed: %s --- Created by: %s\n", key_name, client_creator);
- printf(" Client type: %s\n", client_type);
- printf(" Client arch: %s\n", client_arch);
- printf(" Key permutation date: %s\n", client_key_date);
- printf(" Comments: %s\n", client_comments);
-#endif
-
-#ifdef EXPIRE
- printf("THIS CLIENT WILL EXPIRE ON %s\n", exptime);
-#endif
-
- exit(0);
- break;
#ifdef IGNORE_SIGNALS_SEGV_BUS
case 'i':
@@ -370,19 +320,6 @@ int main2(int argc, char **argv)
pixMissing |= NO_PIXMAPS;
break;
-#ifdef TOOLS
- case 'L':
- sprintf(url, upgradeURL, arch);
- break;
-
- case 'V':
- sprintf(url, releaseURL, mvers, PATCHLEVEL);
- break;
-
- case 'B':
- sprintf(url, bugURL, mvers, PATCHLEVEL, arch);
- break;
-#endif
case 'S': /* analyse a cambot recording for visualisation */
gather_stats++;
break;
@@ -396,52 +333,6 @@ int main2(int argc, char **argv)
}
}
-#ifdef TOOLS
- if (*url)
- {
- char webcall[1024];
-
- initDefaults(deffile);
- if (getdefault("wwwlink") != NULL)
- wwwlink = getdefault("wwwlink");
-
- snprintf(webcall, sizeof(webcall), wwwlink, url);
- if (system(webcall) == -1)
- printf("Running %s for URL %s failed\n", wwwlink, url);
- url[0] = '\0';
- exit(0);
- }
-#endif
-
-#ifdef EXPIRE
- daycomp = tv_ctime.tv_sec;
- expday = daycomp + EXPIRE * 24 * 3600;
- today = time(NULL);
- STRNCPY(exptime, ctime(&expday), sizeof(exptime));
-
- if ((expday - today) < 0.2 * (expday - daycomp) || (expday - today) / (24 * 3600) < 5)
- {
- printf("!!!!!!!!!!!!!!!!!!!!!!WARNING!!!!!!!!!!!!!!!!!!!!!!!\n");
- printf("This client will expire on %s\n", exptime);
- printf("Please obtain a newer version from your favourite ftp site.\n");
- printf("At the moment of writing http://cow.netrek.org/ is the COW home.\n");
-
-#ifdef TOOLS
- printf("Or try the -L option to get a new version.\n");
-#endif
- }
- if (today > expday)
- {
- printf("Sorry. This client has expired. It can no longer be used.\n");
-
-#ifdef TOOLS
- printf("Try the -L option to get a new version.\n");
-#endif
-
- exit(0);
- }
-#endif
-
if (usage || err)
{
printUsage(name);
@@ -472,7 +363,7 @@ int main2(int argc, char **argv)
static void printUsage(char *prog)
{
- printf("%s\n", cowid);
+ printf("%s\n", version);
printf("Usage: %s [options] [display-name]\n", prog);
printf("Options:\n");
printf(" [--server n] Connect to a server immediately\n");
@@ -521,16 +412,4 @@ static void printUsage(char *prog)
#endif
printf(" [-b] do not attempt to load color pixmaps\n");
-
-#ifdef TOOLS
- printf(" [-L] upgrade to Latest version (requires running netscape)\n");
- printf(" [-V] Version info and release notes (requires running netscape)\n");
- printf(" [-B] submit a Bug report (requires running netscape)\n");
-#endif
-
- printf(" [-v] display client version info\n");
-
-#ifdef EXPIRE
- printf("THIS CLIENT WILL EXPIRE ON %s\n", exptime);
-#endif
}
diff --git a/manifest b/manifest
index e308006..267bd01 100644
--- a/manifest
+++ b/manifest
@@ -68,7 +68,6 @@ map.c
map.h
myf.c
myf.h
-mkcflags.c
mkfilent.mak
mkkey.c
key.mk.in
diff --git a/mkcflags.c b/mkcflags.c
deleted file mode 100644
index 3bbebae..0000000
--- a/mkcflags.c
+++ /dev/null
@@ -1,117 +0,0 @@
-#include "config.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/types.h>
-
-#include <time.h>
-#include INC_SYS_TIME
-#include <pwd.h>
-#include "version.h"
-#include "patchlevel.h"
-
-/*****************************************************************************/
-/* */
-/* This program generates cflags.c tm is not identical across arches, date */
-/* is a poor way of getting the compilation time. A simple program (just */
-/* like this one) is the answer. */
-/* */
-/* Oh yea, better have an ANSI compiler. --oh well. HP, you suck! */
-/* ANSI C defines the tm structure in time.h so better learn ANSI C */
-/* */
-/*****************************************************************************/
-
-int
-main (argc, argv)
- int argc;
- char *argv[];
-{
- time_t seconds;
- struct tm *tm_date;
- char tbuff1[100], tbuff2[100];
- char pigcall[120];
- char *pigcallresp ();
-
- if (argc != 3)
- {
- fprintf (stderr, "This program takes 2 argument, why are you running it anyway?\n");
- exit (1);
- }
- seconds = time(0);
- tm_date = localtime (&seconds);
- strftime (tbuff1, sizeof (tbuff1), "%a %b %d, %Y %r", tm_date);
- strftime (tbuff2, sizeof (tbuff2), "%D", tm_date);
- printf ("/*****************************************************************************/\n");
- printf ("/* Cflags.c: generated by mkcflags on %s */\n", tbuff1);
- printf ("/*****************************************************************************/\n");
- printf ("#include \"config.h\"\n");
- printf ("#include <time.h>\n");
- printf ("#include INC_SYS_TIME\n\n");
- printf ("char cflags[]=\"%s\";\n", argv[1]);
- printf ("char arch[]=\"%s\";\n", argv[2]);
- printf ("char cdate[]=\"%s\";\n", tbuff2);
- printf ("struct timeval tv_ctime={%u,0};\n", (int) seconds);
- printf ("char cbugs[]=\"feedback to: quozl@us.netrek.org\";\n");
- printf ("char cowid[]=\"%s\";\n", pigcallresp (pigcall, tbuff2, argv[2]));
- exit (0);
-}
-
-/* slightly modified pigcallresp */
-char *
-pigcallresp (pigcall, cdate, arch)
- char *pigcall;
- char *cdate;
- char *arch;
-{
- sprintf (pigcall, "%s.%d, %s, %s, ", version, PATCHLEVEL, arch, cdate);
- /* ack .... gross short hand fomulas for compile options!!! */
-
-#ifdef RSA
- strcat (pigcall, "R");
-#endif
-
-#ifdef NBT
- strcat (pigcall, "M");
-#endif
-
-#ifdef DEBUG
- strcat (pigcall, "D");
-#endif
-
-#ifdef CORRUPTED_PACKETS
- strcat (pigcall, "C");
-#endif
-
-#ifdef SHORT_PACKETS
- strcat (pigcall, "S");
-#endif
-
-#ifdef EXPIRE
- sprintf (buf, "E%d", EXPIRE);
- strcat (pigcall, buf);
-#endif
-
-#ifdef ARMY_SLIDER
- strcat (pigcall, "A");
-#endif
-
-#ifdef META
- strcat (pigcall, "m");
-#endif
-
-#ifdef TOOLS
- strcat (pigcall, "T");
-#endif
-
-#ifdef SOUND
- strcat (pigcall, "s");
-#endif
-
-#ifdef RCD
- strcat (pigcall, "r");
-#endif
-
- strcat (pigcall, "P");
-
- return (pigcall);
-}
diff --git a/mkfilent.mak b/mkfilent.mak
index eb9e611..c024e68 100644
--- a/mkfilent.mak
+++ b/mkfilent.mak
@@ -150,7 +150,7 @@ ROBJ = check.obj colors.obj data.obj death.obj defaults.obj dmessage.
udpopt.obj ping.obj pingstats.obj rotate.obj lagmeter.obj parsemeta.obj\
netstat.obj netstatopt.obj spopt.obj dashboard.obj dashboard3.obj\
short.obj distress.obj senddist.obj defwin.obj tools.obj sound.obj\
- docwin.obj cflags.obj beeplite.obj feature.obj\
+ docwin.obj beeplite.obj feature.obj\
string_util.obj local.obj censor.obj cowmain.obj
RSRC = check.c colors.c data.c death.c defaults.c dmessage.c\
@@ -161,7 +161,7 @@ RSRC = check.c colors.c data.c death.c defaults.c dmessage.c\
warning.c udpopt.c sintab.c ping.c pingstats.c rotate.c\
lagmeter.c netstat.c netstatopt.c spopt.c dashboard.c dashboard3.c\
short.c distress.c senddist.c defwin.c tools.c sound.c\
- docwin.c cflags.c beeplite.c feature.c reserved.c\
+ docwin.c beeplite.c feature.c reserved.c\
string_util.c local.c censor.c cowmain.c
INPUTOBJ = input.obj redraw.obj
@@ -182,14 +182,6 @@ INCLUDES = struct.h packets.h defs.h copyright.h bitmaps.h data.h\
all: netrek.exe
-cflags.c: mkcflags.exe config.h mkfilent.mak
- mkcflags "$(cc) $(cflags)" "$(ARCH)" > cflags.c
- echo char cwho[]="$(CWHO)"; >> cflags.c
-
-mkcflags.exe: mkcflags.c patchlevel.h version.h config.h mkfilent.mak
- $(compileandlink) $(cflags) $(DEFS) $(INCS) mkcflags.c
-
-
OBJS = $(ROBJ) $(MAINOBJ) $(RSAOBJ) $(INPUTOBJ) $(WIN32_OBJS)
$(RANDOMOBJ)
diff --git a/newwin.c b/newwin.c
index ca59529..50ec5ec 100644
--- a/newwin.c
+++ b/newwin.c
@@ -54,8 +54,7 @@
#include "warning.h"
#include "newwin.h"
-
-extern char cbugs[];
+#include "version.h"
/* line number of motd to display at top of window */
static int motd_offset = 0;
@@ -1285,12 +1284,12 @@ void showMotd(W_Window w, int atline)
int count;
char buf[128];
- sprintf(buf, "--- %s ---", (char *) query_cowid());
+ sprintf(buf, "--- %s ---", version);
length = strlen(buf);
center = TWINSIDE / 2 - (length * W_Textwidth) / 2;
W_WriteText(w, center, W_Textheight, W_Cyan, buf, length, W_BoldFont);
- show_motd_heading(w, cbugs, 3, W_Cyan);
+ show_motd_heading(w, "feedback to: quozl@us.netrek.org", 3, W_Cyan);
if (me == NULL) {
show_motd_heading(w, "while you are in the queue", 5, W_Grey);
diff --git a/system.mk.in b/system.mk.in
index d002b92..9a72dcf 100644
--- a/system.mk.in
+++ b/system.mk.in
@@ -63,7 +63,7 @@ ROBJ = check.o colors.o data.o death.o defaults.o dmessage.o \
warning.o udpopt.o ping.o pingstats.o rotate.o lagmeter.o \
parsemeta.o netstat.o netstatopt.o spopt.o dashboard.o \
dashboard3.o short.o distress.o senddist.o defwin.o tools.o \
- sound.o docwin.o cflags.o beeplite.o feature.o string_util.o \
+ sound.o docwin.o beeplite.o feature.o string_util.o \
local.o censor.o cowmain.o camera.o myf.o
RSRC = check.c colors.c data.c death.c defaults.c dmessage.c \
@@ -74,7 +74,7 @@ RSRC = check.c colors.c data.c death.c defaults.c dmessage.c \
war.c warning.c udpopt.c sintab.c ping.c pingstats.c \
rotate.c lagmeter.c netstat.c netstatopt.c spopt.c \
dashboard.c dashboard3.c short.c distress.c senddist.c \
- defwin.c tools.c sound.c docwin.c cflags.c beeplite.c \
+ defwin.c tools.c sound.c docwin.c beeplite.c \
feature.c reserved.c string_util.c local.c censor.c \
cowmain.c camera.c myf.c
@@ -107,7 +107,7 @@ CFLAGS += $(INCDIRS)
LDFLAGS ?= -g
LIBRARIES = $(LIBS) $(EXTRALIBS) $(SDL_LIBS) $(SDL_MIXER_LIBS) $(XXF86VM_LIBS)
-netrek-client-cow: $(PMAKE) null $(ROBJ) $(MAINOBJ) $(INPUTOBJ) $(X11OBJ) $(WIN32OBJ) $(RANDOMOBJ) cflags.c
+netrek-client-cow: $(PMAKE) null $(ROBJ) $(MAINOBJ) $(INPUTOBJ) $(X11OBJ) $(WIN32OBJ) $(RANDOMOBJ)
$(CC) $(LDFLAGS) -o netrek-client-cow $(ROBJ) $(INPUTOBJ) $(MAINOBJ) $(X11OBJ) $(WIN32OBJ) $(RANDOMOBJ) $(LIBRARIES)
netrek.shared: done.libcow $(MAINOBJ) $(COWAPI)
@@ -129,27 +129,20 @@ random.o: random.c
strdup.o: strdup.c
$(CC) $(CPPFLAGS) $(CFLAGS) -c strdup.c
-cflags.c: mkcflags
- ./mkcflags "$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)" "$(ARCH)" > cflags.c
- echo char cwho[]=$(CWHO)\; >> cflags.c
-
-mkcflags: mkcflags.c system.mk null patchlevel.h version.h
- $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o mkcflags mkcflags.c $(LIBRARIES)
-
tags: $(RSRC)
ctags $(RSRC) $(INCLUDES)
-depend: cflags.c null
+depend: null
-makedepend -f system.mk $(RSRC) $(MAINSRC) \
$(X11SRC) name.c $(INCDIRS)
-proto: cflags.c null
+proto: null
$(PROTOIZE) $(RSRC) $(MAINSRC) $(X11SRC) $(WIN32SRC)
-unproto: cflags.c null
+unproto: null
$(UNPROTOIZE) $(RSRC) $(MAINSRC) $(X11SRC) $(WIN32SRC)
-indent: cflags.c null
+indent: null
$(INDENT) $(RSRC) $(MAINSRC) $(INCLUDES) $(X11SRC) $(WIN32SRC)
to_unix: $(RSRC) $(INCLUDES) $(MAINSRC) $(X11SRC)