Following up on a thread regarding gzip 1.3.13, I was getting the error message " no rule to make target - getopt.h". I have got past this error but still cannot build due to my lack of expertise, apparently broken djgpp installation and possibly missing gnu libraries. I did change the cflag line (as suggested in a reply) to add to the include path for the compilation step but the real problem was in the list of targets at the bottom of the makefile. Instead of simply `getopt.h' I changed it to `lib/getopt.h' and that solves the problem. The big qualification to this is that I had to run the configure script, which creates a new `makefile'. You have to run the new `makefile' just to create `getopt.h' in the `lib' subdirectory. I also got a warning compiling `config.h' about a redundant declaration which I fixed by simply commenting it out of `config.h' . There is a a bug in my DJGPP 2.024 beta installation ever since I updated to GCC 4.41 where I get assembler errors most of the time (see below).
Here is some of the command line window output: checking for ANSI C header files... (cached) yes checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking return type of signal handlers... void checking for size_t... (cached) yes checking for off_t... yes configure: creating ./config.status config.status: creating Makefile config.status: creating doc/Makefile config.status: creating lib/Makefile config.status: creating lib/config.h config.status: executing depfiles commands bash-2.05b$ exit exit D:\GZIP-1~1.14>make -f makefile Making all in lib make.exe[1]: Entering directory `d:/gzip-1.3.14/lib' GEN alloca.h GEN configmake.h GEN errno.h GEN fcntl.h GEN getopt.h GEN math.h GEN stdint.h GEN stdio.h GEN stdlib.h GEN string.h GEN sys/stat.h GEN sys/time.h GEN time.h GEN unistd.h GEN wchar.h GEN wctype.h d:/djgpp204/bin/make.exe all-recursive make.exe[2]: Entering directory `d:/gzip-1.3.14/lib' make.exe[3]: Entering directory `d:/gzip-1.3.14/lib' CC close-hook.o CC freadahead.o freadahead.c:83:3: error: #error "Please port gnulib freadahead.c to your platfo rm! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." make.exe[3]: *** [freadahead.o] Error 1 make.exe[3]: Leaving directory `d:/gzip-1.3.14/lib' make.exe[2]: *** [all-recursive] Error 1 make.exe[2]: Leaving directory `d:/gzip-1.3.14/lib' make.exe[1]: *** [all] Error 2 make.exe[1]: Leaving directory `d:/gzip-1.3.14/lib' make.exe: *** [all-recursive] Error 1 ...(snip) Additionally, (snip)... D:\GZIP-1~1.14>make -f msdos/makefile.djg gcc -c -O2 -finline-functions -fomit-frame-pointer -I./lib gzip.c d:/djgpp204/tmp/ccebBP1e.s: Assembler messages: d:/djgpp204/tmp/ccebBP1e.s:4292: Error: junk at end of line, first unrecognized character is `,' d:/djgpp204/tmp/ccebBP1e.s:4477: Error: junk at end of line, first unrecognized character is `,' d:/djgpp204/tmp/ccebBP1e.s:4478: Error: junk at end of line, first unrecognized character is `,' make.exe: *** [gzip.o] Error 1 ...(snip) As I have already mentioned I stopped getting a warning about a redundant declaration of a variable after editing `config.h' to comment it out.
Makefile.djg
Description: makefile.djg as edited to find getopt.h in lib
config.h
Description: config.h edited to stop a warning message
-- Allan J. Mui
