Subversion Repositories Kolibri OS

Rev

Rev 4362 | Rev 4866 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1.  
  2. LIBRARY= libpng16
  3.  
  4. CC=gcc
  5. CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
  6.  
  7. LD = ld
  8.  
  9. AR= ar
  10.  
  11. STRIP = $(PREFIX)strip
  12.  
  13. LDFLAGS:=  -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0 --out-implib $(LIBRARY).dll.a
  14.  
  15. INCLUDES= -I. -I../newlib/include -I../zlib
  16.  
  17. LIBPATH:= -L../../lib
  18.  
  19. LIBS:=  -ldll -lc.dll -lz.dll
  20.  
  21. DEFS = -DHAVE_CONFIG_H
  22.  
  23. LIBPNG_DEFINES = -DPNG_CONFIGURE_LIBPNG
  24.  
  25. DEFINES= $(DEFS) $(LIBPNG_DEFINES)
  26.  
  27. ifeq ($(findstring ebox,$(MAKECMDGOALS)),ebox)
  28. CFLAGS+=-march=pentium-mmx
  29. endif
  30.  
  31.  
  32. SOURCES = png.c pngerror.c pngget.c pngmem.c pngpread.c \
  33.           pngread.c pngrio.c pngrtran.c pngrutil.c      \
  34.           pngset.c pngtrans.c pngwio.c pngwrite.c       \
  35.           pngwtran.c pngwutil.c
  36.  
  37.  
  38. OBJECTS =  $(patsubst %.c, %.o, $(SOURCES))
  39.  
  40.  
  41. # targets
  42.  
  43.  
  44. all:$(LIBRARY).a $(LIBRARY).dll
  45.  
  46. ebox:$(LIBRARY).a $(LIBRARY).dll
  47.  
  48. $(LIBRARY).a: $(OBJECTS) Makefile
  49.         ar cvrs $(LIBRARY).a $(OBJECTS)
  50.         mv -f $(LIBRARY).a ../../lib
  51.  
  52. $(LIBRARY).dll: libpng16.def $(OBJECTS) Makefile
  53.         $(LD) $(LDFLAGS) $(LIBPATH) -o $@  libpng16.def $(OBJECTS) $(LIBS)
  54.         $(STRIP) $@
  55.         sed -f ../newlib/cmd1.sed libpng16.def > mem
  56.         sed -f ../newlib/cmd2.sed mem >libpng.inc
  57.         mv -f $@ ../../bin
  58.         mv -f $(LIBRARY).dll.a ../../lib  
  59.  
  60.  
  61. %.o : %.c Makefile
  62.         $(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $<
  63.  
  64. clean:
  65.         -rm -f *.o
  66.  
  67.  
  68.  
  69.  
  70.