gccprogram.mk 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #
  2. # Copyright (c) 2006-2011 Nokia Corporation and/or its subsidiary(-ies).
  3. # All rights reserved.
  4. # This component and the accompanying materials are made available
  5. # under the terms of the License "Eclipse Public License v1.0"
  6. # which accompanies this distribution, and is available
  7. # at the URL "http://www.eclipse.org/legal/epl-v10.html".
  8. #
  9. # Initial Contributors:
  10. # Nokia Corporation - initial contribution.
  11. #
  12. # Contributors:
  13. #
  14. # Description:
  15. # Utility makefile
  16. #
  17. define cpp2obj
  18. OBJECTFILE:=$(OUTPUTPATH)/$(TARGET)/$(notdir $(SOURCEFILE:.cpp=.o))
  19. $$(OBJECTFILE): $(SOURCEFILE)
  20. g++ $(HOSTMACROS) $(CFLAGS) -c $(SOURCEFILE) -o $$@
  21. OBJECTS:=$$(OBJECTS) $$(OBJECTFILE)
  22. endef
  23. define cppprogram
  24. all:: $(BINDIR)/$(TARGET)$(PROGRAMEXT)
  25. $(foreach SOURCEFILE,$(SOURCES),$(cpp2obj))
  26. $(BINDIR)/$(TARGET)$(PROGRAMEXT): $$(OBJECTS)
  27. g++ $$^ -o $$@ $(LDFLAGS)
  28. $$(shell mkdir -p $(OUTPUTPATH)/$(TARGET) $(BINDIR))
  29. CLEANFILES:=$$(OBJECTS)
  30. $(cleanlog)
  31. endef
  32. define c2obj
  33. OBJECTFILE:=$(OUTPUTPATH)/$(TARGET)/$(notdir $(SOURCEFILE:.c=.o))
  34. $$(OBJECTFILE): $(SOURCEFILE)
  35. gcc $(HOSTMACROS) $(CFLAGS) -c $(SOURCEFILE) -o $$@
  36. OBJECTS:=$$(OBJECTS) $$(OBJECTFILE)
  37. endef
  38. define cprogram
  39. OBJECTS:=
  40. all:: $(BINDIR)/$(TARGET)$(PROGRAMEXT)
  41. .PHONY:: $(TARGET)
  42. $(TARGET):: $(BINDIR)/$(TARGET)$(PROGRAMEXT)
  43. $(foreach SOURCEFILE,$(SOURCES),$(c2obj))
  44. $(BINDIR)/$(TARGET)$(PROGRAMEXT): $$(OBJECTS)
  45. gcc $$^ $(LDFLAGS) -o $$@
  46. $$(shell mkdir -p $(OUTPUTPATH)/$(TARGET))
  47. CLEANFILES:=$$(OBJECTS)
  48. $(cleanlog)
  49. endef