Makefile 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #
  2. # Copyright (C) 2008 by egnite GmbH
  3. # Copyright (C) 2001-2002 by egnite Software GmbH
  4. #
  5. # All rights reserved.
  6. #
  7. # Redistribution and use in source and binary forms, with or without
  8. # modification, are permitted provided that the following conditions
  9. # are met:
  10. #
  11. # 1. Redistributions of source code must retain the above copyright
  12. # notice, this list of conditions and the following disclaimer.
  13. # 2. Redistributions in binary form must reproduce the above copyright
  14. # notice, this list of conditions and the following disclaimer in the
  15. # documentation and/or other materials provided with the distribution.
  16. # 3. Neither the name of the copyright holders nor the names of
  17. # contributors may be used to endorse or promote products derived
  18. # from this software without specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  23. # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  24. # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  25. # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  26. # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
  27. # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
  28. # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  29. # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
  30. # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  31. # SUCH DAMAGE.
  32. #
  33. # For additional information see http://www.ethernut.de/
  34. #
  35. PROJ = libnutos
  36. top_srcdir = ..
  37. top_blddir = ..
  38. LIBDIR = $(top_blddir)/lib
  39. include $(top_srcdir)/NutConf.mk
  40. include $(top_srcdir)/Makedefs
  41. SRC1 = nutinit.c
  42. SRC2 = devreg.c timer.c msg.c event.c thread.c heap.c osdebug.c confos.c \
  43. version.c semaphore.c mutex.c tracer.c condition.c fatal.c panic.c
  44. #Add support for memory banks on AVR architecture
  45. ifeq ($(ARCH), avr)
  46. SRC2 += bankmem.c
  47. endif
  48. OBJ1 = $(SRC1:.c=.o)
  49. OBJ2 = $(SRC2:.c=.o)
  50. TRG1 = $(OBJ1)
  51. TRG2 = $(PROJ).a $(SRC1.c=.d)
  52. all: $(TRG1) $(TRG2)
  53. include $(top_srcdir)/Makerules
  54. $(TRG1): $(SRC1.c=.d)
  55. $(TRG2): $(OBJ2) $(SRC2.c=.d)
  56. $(AR) $(ARFLAGS) $(TRG2) $(OBJ2)
  57. install: $(TRG1) $(TRG2)
  58. $(CP) $(TRG1) $(LIBDIR)/$(TRG1)
  59. $(CP) $(TRG2) $(LIBDIR)/$(TRG2)
  60. ifeq ($(ARCH), unix)
  61. $(RANLIB) $(LIBDIR)/$(TRG2)
  62. endif
  63. clean:
  64. @echo " [CLEANING] $(TARG)..."
  65. @-rm -f $(OBJ1) $(OBJ2)
  66. @-rm -f $(TRG1) $(TRG2)
  67. @-rm -f $(SRC1:.c=.lst) $(SRC2:.c=.lst)
  68. @-rm -f $(SRC1:.c=.lis) $(SRC2:.c=.lis)
  69. @-rm -f $(SRC1:.c=.s) $(SRC2:.c=.s)
  70. @-rm -f $(SRC1:.c=.bak) $(SRC2:.c=.bak)
  71. @-rm -f $(SRC1:.c=.c~) $(SRC2:.c=.c~)
  72. @-rm -f $(SRC1:.c=.i) $(SRC2:.c=.i)