]> Zhao Yanbai Git Server - minix.git/commitdiff
advent: support ${.OBJDIR} != ${.CURDIR}, tracker item 486
authorBen Gras <ben@minix3.org>
Tue, 22 Jun 2010 21:56:38 +0000 (21:56 +0000)
committerBen Gras <ben@minix3.org>
Tue, 22 Jun 2010 21:56:38 +0000 (21:56 +0000)
commands/advent/Makefile
commands/advent/setup.c

index 399acbebd67ff57f2dd04aed3bac35677a7c6c67..84cf2b622a59138a92aca696b6b770978ee4c6a4 100644 (file)
@@ -15,11 +15,11 @@ MAN=
 database.o: advtext.h
 
 setup: setup.c advent.h
-       ${CC} ${CPPFLAGS} ${LDFLAGS} -o setup setup.c
+       ${CC} ${CPPFLAGS} ${LDFLAGS} -o $@ ${.CURDIR}/setup.c
 
 advtext.h advent1.dat advent2.dat advent3.dat advent4.dat: \
                setup advent1.txt advent2.txt advent3.txt advent4.txt
-       ./setup
+       ./setup ${.CURDIR}
 
 CPPFLAGS.advent.c= -DTEXTDIR='"${TEXTDIR}"'
 
index c983da9e4fe231b2fbf5c4d09665a5334e13f955..dc15f37f6759f300d0cb0f8b8003dbde3e1498a1 100644 (file)
 #include       <stdlib.h>
 #include       "advent.h"
 
-_PROTOTYPE(int main, (void));
 _PROTOTYPE(void file_error, (char *));
 _PROTOTYPE(void encode, (unsigned char *));
 
-int main()
+int main(int argc, char *argv[])
 {
 
     FILE *isam, *src, *dest;
     char itxt[255];
     int cnt, i;
     long llen;
-    char filename[12];
+    char filename[100];
+    char *inputprefix = ".";
     static char *headername[] = {
        "idx1[MAXLOC]", "idx2[MAXLOC]", "idx3[MAXOBJ]", "idx4[MAXMSG]",
     };
 
     long x29 = (1L << 29), x30 = (1L << 30);
+
+    if(argc > 1) {
+       inputprefix=argv[1];
+    }
+
     if (!(x30 / 2 == x29 && 0L < x30 && x29 < x30)) {
        fprintf(stderr, "Sorry, advent needs 32-bit `long int's.\n");
        exit(EXIT_FAILURE);
     }
-    isam = fopen("advtext.h", "w");
+    sprintf(filename, "%s/advtext.h", inputprefix);
+    isam = fopen(filename, "w");
     if (!isam) {
        fprintf(stderr, "Sorry, I can't open advtext.h...\n");
        exit(EXIT_FAILURE);
@@ -42,7 +48,7 @@ int main()
     for (i = 1; i <= 4; i++) {
        cnt = -1;
        llen = 0L;
-       sprintf(filename, "advent%d.txt", i);
+       sprintf(filename, "%s/advent%d.txt", inputprefix, i);
        src = fopen(filename, "r");
        if (!src)
            file_error(filename);