PageRenderTime 43ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/Makefile

http://github.com/ece291/ece291-pmodelib
Makefile | 80 lines | 52 code | 23 blank | 5 comment | 0 complexity | 2ce7c86252468af659180390e95830ab MD5 | raw file
  1. # Makefile to build library
  2. # By Peter Johnson, 1999-2000
  3. #
  4. # $Id: Makefile,v 1.20 2002/01/08 03:14:33 pete Exp $
  5. # set some useful paths
  6. OBJ = obj
  7. LIB = lib291.a
  8. TMPLIB = lib291t.a
  9. LFLAGS =
  10. ASMFLAGS = -f coff -iinclude/
  11. CFLAGS = -I$(EXTLIBS)/lpng -I$(EXTLIBS)/zlib -I$(EXTLIBS)/jpeg-6b
  12. VPATH = examples src src_c
  13. PROGRAMS_BASE = mousetst testint testnet tcpweb tcpcli tcpsrv udpcli udpsrv \
  14. testsb testsb16
  15. PROGRAMS = $(addsuffix .exe, $(addprefix examples/, $(PROGRAMS_BASE)))
  16. OBJS = lib_load.o vbeaf.o textmode.o gfxfiles.o filefunc.o socket.o \
  17. dpmi_int.o dpmi_mem.o int_wrap.o rmcbwrap.o netbios.o misc.o \
  18. dma.o sb16.o loadpng.o jpg.o
  19. COBJS = readpng.o readjpg.o
  20. EXTLIBOBJS = $(EXTLIBS)/lpng/libpng.a \
  21. $(EXTLIBS)/zlib/libz.a \
  22. $(EXTLIBS)/jpeg-6b/libjpeg.a
  23. LIBOBJS = $(addprefix $(OBJ)/, $(OBJS)) $(addprefix $(OBJ)/, $(COBJS))
  24. .PRECIOUS: $(OBJ)/%.o
  25. .PHONY: all msg libobjs lib clean veryclean
  26. all: lib $(PROGRAMS)
  27. @echo All done.
  28. arscript: $(TMPLIB) $(LIBOBJS) $(EXTLIBOBJS)
  29. @echo "CREATE $(LIB)" >$@
  30. @echo "ADDLIB $(TMPLIB)" >>$@
  31. @echo "ADDLIB $(EXTLIBS)/lpng/libpng.a" >>$@
  32. @echo "ADDLIB $(EXTLIBS)/zlib/libz.a" >>$@
  33. @echo "ADDLIB $(EXTLIBS)/jpeg-6b/libjpeg.a" >>$@
  34. @echo "SAVE" >>$@
  35. $(LIB): arscript
  36. ar -M <arscript
  37. -del arscript
  38. -del $(TMPLIB)
  39. lib: $(LIB)
  40. ranlib $(LIB)
  41. $(OBJ)/%.o: %.asm
  42. nasm $(ASMFLAGS) -o $@ $< -l list/$*.lst
  43. $(OBJ)/%.o: %.c
  44. gcc -c $(CFLAGS) -o $@ $<
  45. */%.exe: $(OBJ)/%.o $(LIB)
  46. gcc $(LFLAGS) -o $@ $< $(LIB)
  47. $(TMPLIB)(%): %
  48. ar cr $(TMPLIB) $<
  49. $(TMPLIB): $(TMPLIB)($(LIBOBJS))
  50. clean:
  51. -del obj\*.o
  52. -del lib291.a
  53. -del list\*.lst
  54. -del lib291t.a
  55. -del arscript
  56. veryclean: clean
  57. -del examples\*.exe