File add-makefile.patch of Package dparse-ldc2

--- /dev/null
+++ b/Makefile
@@ -0,0 +1,119 @@
+PROJECT       = dparse
+DESCR         = "Library for lexing and parsing D source code"
+DC            = ldc2
+PREFIX        = usr
+DESTDIR       =
+
+VERSION       := 0.25.1
+MAJOR_VERSION := 0
+
+BASENAME                 := $(PROJECT)-$(DC)
+LIBRARY                  := lib$(BASENAME)
+PCFILE_NAME              := $(BASENAME).pc
+PCFILE_NAME_ST           := $(BASENAME)-static.pc
+OBJFILE                  := $(LIBRARY).o
+SHLIB_BASE               := $(LIBRARY).so
+STLIB_NAME               := $(LIBRARY).a
+SHLIB_WITH_VERSION       := $(SHLIB_BASE).$(VERSION)
+SHLIB_WITH_MAJOR_VERSION := $(SHLIB_BASE).$(MAJOR_VERSION)
+SHLIB_WITHOUT_VERSION    := $(SHLIB_BASE)
+
+B_DIR  := build
+OBJECT := $(B_DIR)/$(OBJFILE)
+SHLIB  := $(B_DIR)/$(SHLIB_WITH_VERSION)
+STLIB  := $(B_DIR)/$(STLIB_NAME)
+PCFILE    := $(B_DIR)/$(PCFILE_NAME)
+PCFILE_ST := $(B_DIR)/$(PCFILE_NAME_ST)
+
+SONAME := $(SHLIB_BASE).$(MAJOR_VERSION)
+
+SHLIB_FLAGS   := $(shell ./mh.sh $(DC) shared-flags $(SONAME))
+DEBUG_FLAGS   := $(shell ./mh.sh $(DC) debug-flags)
+RELEASE_FLAGS := $(shell ./mh.sh $(DC) release-flags)
+OTHER_FLAGS   := -J.
+BUILD_MODE    ?= debug
+ifeq ($(BUILD_MODE),release)
+	BUILD_OPTS := $(RELEASE_FLAGS) $(OTHER_FLAGS)
+else
+	BUILD_OPTS := $(DEBUG_FLAGS) $(OTHER_FLAGS)
+endif
+
+SOURCES   := $(wildcard src/$(PROJECT)/*.d src/std/experimental/*.d)
+RESOURCES := $(wildcard res/*)
+
+LIBDIR          := $(shell ./mh.sh $(DC) library-path)
+INCDIR          := $(shell ./mh.sh $(DC) include-path)
+INST_LIBDIR     := $(DESTDIR)/$(PREFIX)/$(LIBDIR)
+INST_INCDIR_TOP := $(DESTDIR)/$(PREFIX)/$(INCDIR)
+INST_INCDIR     := $(INST_INCDIR_TOP)/$(PROJECT)
+INST_PCDIR      := $(INST_LIBDIR)/pkgconfig
+
+OUT       := -of
+TESTFLAGS := -unittest -main
+ifeq ($(DC),gdc)
+	OUT := -o
+	TESTFLAGS := -funittest -fmain
+endif
+
+.PHONY: all clean *install *-settings shared static generate-pc
+
+release:
+	$(MAKE) BUILD_MODE=release shared
+	$(MAKE) BUILD_MODE=release static
+
+debug:
+	$(MAKE) BUILD_MODE=debug shared
+	$(MAKE) BUILD_MODE=debug static
+
+
+shared: $(SHLIB)
+	@echo "Compiled to" $(SHLIB)
+
+static:  $(STLIB)
+	@echo "Compiled to" $(STLIB)
+
+$(OBJECT): $(SOURCES)
+	mkdir -p $(B_DIR)
+	$(DC) $^ -c $(OUT)$@ $(BUILD_OPTS)
+
+$(SHLIB): $(OBJECT)
+	$(DC) $^ $(OUT)$@ $(SHLIB_FLAGS)
+
+$(STLIB): $(OBJECT)
+	ar r $@ $^
+
+clean:
+	rm -rf build/ doc/ meson_builddir/
+
+install: generate-pc
+	mkdir -p "$(INST_INCDIR)" "$(INST_LIBDIR)" "$(INST_PCDIR)"
+	cp $(SHLIB) "$(INST_LIBDIR)"
+	cp $(STLIB) "$(INST_LIBDIR)"
+	cp -r src/* "$(INST_INCDIR)"
+	ln -sf $(SHLIB_WITH_VERSION) "$(INST_LIBDIR)/$(SHLIB_WITH_MAJOR_VERSION)"
+	ln -sf $(SHLIB_WITH_MAJOR_VERSION) "$(INST_LIBDIR)/$(SHLIB_WITHOUT_VERSION)"
+	cp $(PCFILE) $(PCFILE_ST) "$(INST_PCDIR)/"
+
+DESCR_ENDING := "the $(shell echo $(DC) | tr a-z A-Z) version"
+PC_DESCR     := "Description: $(DESCR), $(DESCR_ENDING)"
+PC_LDIR      := $(subst //,/,/$(PREFIX)/$(LIBDIR))
+PC_IDIR      := $(subst //,/,/$(PREFIX)/$(INCDIR))/dparse
+LPATH_OPT    := $(shell ./mh.sh $(DC) libpath-opt)
+LN_OPT       := $(shell ./mh.sh $(DC) libname-opt)
+SHARED_OPTS  := $(LPATH_OPT)$(PC_LDIR) $(LN_OPT)$(BASENAME)
+STATIC_OPTS  := $(LPATH_OPT)$(PC_LDIR) $(LN_OPT):lib$(BASENAME).a
+
+generate-pc:
+	mkdir -p $(B_DIR)
+	# for dynamic version
+	echo "Name: $(BASENAME)" > $(PCFILE)
+	echo "$(PC_DESCR)" >> $(PCFILE)
+	echo "Version: $(VERSION)" >> $(PCFILE)
+	echo "Libs: $(SHARED_OPTS)" >> $(PCFILE)
+	echo "Cflags: -I$(PC_IDIR)" >> $(PCFILE)
+	# for static version
+	echo "Name: $(BASENAME)-static" > $(PCFILE_ST)
+	echo "$(PC_DESCR). Static library" >> $(PCFILE_ST)
+	echo "Version: $(VERSION)" >> $(PCFILE_ST)
+	echo "Libs: $(STATIC_OPTS)" >> $(PCFILE_ST)
+	echo "Cflags: -I$(PC_IDIR)" >> $(PCFILE_ST)
openSUSE Build Service is sponsored by