## Common rules for D source compilation used in all Makefile.am's. ## Copyright (C) 2016-2018 Free Software Foundation, Inc. ## ## GCC is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3, or (at your option) ## any later version. ## ## GCC is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with GCC; see the file COPYING3. If not see ## . # If there are no sources with known extension (i.e. only D sources) # automake forgets to set this CCLD = $(CC) toolexecdir = $(libphobos_toolexecdir) toolexeclibdir = $(libphobos_toolexeclibdir) # Compile D into normal object files .d.o: $(GDC) $(GDCFLAGS) $(MULTIFLAGS) $(D_EXTRA_DFLAGS) -c -o $@ $< # Compile D sources with libtool .d.lo: $(LTDCOMPILE) $(GDCFLAGS) $(MULTIFLAGS) $(D_EXTRA_DFLAGS) -c -o $@ $< LTDCOMPILE = $(LIBTOOL) --tag=D $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(GDC) $(AM_DFLAGS) # Unittest rules. Unfortunately we can't use _DFLAGS in automake without # explicit D support, so use this hack. # Compile D sources with libtool and test flags %.t.lo : %.d $(LTDCOMPILE) $(GDCFLAGSX) $(MULTIFLAGS) $(D_EXTRA_DFLAGS) -c -o $@ $< # Compile objects for static linking with test flags # Automake breaks empty rules, so use the shell NOP : %.t.o : %.t.lo @: # Override executable linking commands: We have to use GDC for linking # to make sure we link pthreads and other dependencies unittest_static_LINK = $(LIBTOOL) --tag=D \ $(unittest_static_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(GDC) $(AM_CFLAGS) $(CFLAGS) $(unittest_static_LDFLAGS) \ $(LDFLAGS) -o $@ unittest_LINK = $(LIBTOOL) --tag=D \ $(unittest_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(GDC) $(AM_CFLAGS) $(CFLAGS) $(unittest_LDFLAGS) \ $(LDFLAGS) -o $@ # Also override library link commands: This is not strictly # required, but we want to record additional dependencies such # as pthread in the library libgdruntime_la_LINK = $(LIBTOOL) --tag=D $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(GDC) $(AM_CFLAGS) $(CFLAGS) \ $(libgdruntime_la_LDFLAGS) $(LDFLAGS) -o $@ libgdruntime_t_la_LINK = $(LIBTOOL) --tag=D $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(GDC) $(AM_CFLAGS) $(CFLAGS) \ $(libgdruntime_t_la_LDFLAGS) $(LDFLAGS) -o $@ libgphobos_la_LINK = $(LIBTOOL) --tag=D $(libgphobos_la_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(GDC) $(AM_CFLAGS) $(CFLAGS) \ $(libgphobos_la_LDFLAGS) $(LDFLAGS) -o $@ libgphobos_t_la_LINK = $(LIBTOOL) --tag=D \ $(libgphobos_t_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ $(GDC) $(AM_CFLAGS) $(CFLAGS) $(libgphobos_t_la_LDFLAGS) \ $(LDFLAGS) -o $@