commit 70e247179fab57ec16fcbfa0d50b3e829d906c0f
parent 5f2d86a47e8b7d1227be520700bdb69c75f8d237
Author: falkTX <falktx@gmail.com>
Date: Tue, 25 Sep 2018 23:31:19 +0200
Adjust makefiles so they can be used externally
Diffstat:
11 files changed, 214 insertions(+), 207 deletions(-)
diff --git a/Makefile b/Makefile
@@ -4,7 +4,7 @@
# Created by falkTX
#
-include Makefile.mk
+include Makefile.base.mk
all: dgl examples gen
diff --git a/Makefile.mk b/Makefile.base.mk
diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk
@@ -0,0 +1,206 @@
+#!/usr/bin/make -f
+# Makefile for DPF Example Plugins #
+# -------------------------------- #
+# Created by falkTX
+#
+
+# NOTE: NAME, FILES_DSP and FILES_UI must have been defined before including this file!
+
+
+ifeq (,$(wildcard ../../Makefile.base.mk))
+DPF_PATH=../../dpf
+else
+DPF_PATH=../..
+endif
+
+include $(DPF_PATH)/Makefile.base.mk
+
+ifeq ($(FILES_UI),)
+HAVE_DGL = false
+endif
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Basic setup
+
+TARGET_DIR = ../../bin
+BUILD_DIR = ../../build/$(NAME)
+
+BUILD_C_FLAGS += -I.
+BUILD_CXX_FLAGS += -I. -I$(DPF_PATH)/distrho -I$(DPF_PATH)/dgl
+
+ifeq ($(HAVE_DGL),true)
+BASE_FLAGS += -DHAVE_DGL
+endif
+
+ifeq ($(HAVE_JACK),true)
+BASE_FLAGS += -DHAVE_JACK
+endif
+
+ifeq ($(HAVE_LIBLO),true)
+BASE_FLAGS += -DHAVE_LIBLO
+endif
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Set files to build
+
+OBJS_DSP = $(FILES_DSP:%=$(BUILD_DIR)/%.o)
+OBJS_UI = $(FILES_UI:%=$(BUILD_DIR)/%.o)
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Set plugin binary file targets
+
+jack = $(TARGET_DIR)/$(NAME)$(APP_EXT)
+ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT)
+dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT)
+dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT)
+lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT)
+lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT)
+lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT)
+vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT)
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Handle plugins without UI
+
+ifneq ($(HAVE_DGL),true)
+dssi_ui =
+lv2_ui =
+DGL_LIBS =
+OBJS_UI =
+endif
+
+# ---------------------------------------------------------------------------------------------------------------------
+# all needs to be first
+
+all:
+
+# ---------------------------------------------------------------------------------------------------------------------
+# Common
+
+$(BUILD_DIR)/%.c.o: %.c
+ -@mkdir -p $(BUILD_DIR)
+ @echo "Compiling $<"
+ @$(CC) $< $(BUILD_C_FLAGS) -c -o $@
+
+$(BUILD_DIR)/%.cpp.o: %.cpp
+ -@mkdir -p $(BUILD_DIR)
+ @echo "Compiling $<"
+ @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
+
+clean:
+ rm -rf $(BUILD_DIR)
+ rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2
+
+# ---------------------------------------------------------------------------------------------------------------------
+
+$(BUILD_DIR)/DistrhoPluginMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp
+ -@mkdir -p $(BUILD_DIR)
+ @echo "Compiling DistrhoPluginMain.cpp ($*)"
+ @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@
+
+$(BUILD_DIR)/DistrhoUIMain_%.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp
+ -@mkdir -p $(BUILD_DIR)
+ @echo "Compiling DistrhoUIMain.cpp ($*)"
+ @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@
+
+$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: $(DPF_PATH)/distrho/DistrhoPluginMain.cpp
+ -@mkdir -p $(BUILD_DIR)
+ @echo "Compiling DistrhoPluginMain.cpp (JACK)"
+ @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags jack) -DDISTRHO_PLUGIN_TARGET_JACK -c -o $@
+
+$(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o: $(DPF_PATH)/distrho/DistrhoUIMain.cpp
+ -@mkdir -p $(BUILD_DIR)
+ @echo "Compiling DistrhoUIMain.cpp (DSSI)"
+ @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -c -o $@
+
+# ---------------------------------------------------------------------------------------------------------------------
+# JACK
+
+jack: $(jack)
+
+$(jack): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.o $(DPF_PATH)/build/libdgl.a
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating JACK standalone for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs jack) -o $@
+
+# ---------------------------------------------------------------------------------------------------------------------
+# LADSPA
+
+ladspa: $(ladspa_dsp)
+
+$(ladspa_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.o
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating LADSPA plugin for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@
+
+# ---------------------------------------------------------------------------------------------------------------------
+# DSSI
+
+dssi: $(dssi_dsp) $(dssi_ui)
+dssi_dsp: $(dssi_dsp)
+dssi_ui: $(dssi_ui)
+
+$(dssi_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.o
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating DSSI plugin library for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@
+
+$(dssi_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o $(DPF_PATH)/build/libdgl.a
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating DSSI UI for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs liblo) -o $@
+
+# ---------------------------------------------------------------------------------------------------------------------
+# LV2
+
+lv2_one: $(lv2)
+lv2_dsp: $(lv2_dsp)
+lv2_sep: $(lv2_dsp) $(lv2_ui)
+
+$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DPF_PATH)/build/libdgl.a
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating LV2 plugin for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@
+
+$(lv2_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating LV2 plugin library for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@
+
+$(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o $(DPF_PATH)/build/libdgl.a
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating LV2 plugin UI for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@
+
+# ---------------------------------------------------------------------------------------------------------------------
+# VST
+
+vst: $(vst)
+
+ifeq ($(HAVE_DGL),true)
+$(vst): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o $(BUILD_DIR)/DistrhoUIMain_VST.cpp.o $(DPF_PATH)/build/libdgl.a
+else
+$(vst): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o
+endif
+ -@mkdir -p $(shell dirname $@)
+ @echo "Creating VST plugin for $(NAME)"
+ @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@
+
+# ---------------------------------------------------------------------------------------------------------------------
+
+-include $(OBJS_DSP:%.o=%.d)
+ifeq ($(HAVE_DGL),true)
+-include $(OBJS_UI:%.o=%.d)
+endif
+
+-include $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.d
+-include $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.d
+-include $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.d
+-include $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.d
+-include $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.d
+
+-include $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.d
+-include $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.d
+-include $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.d
+-include $(BUILD_DIR)/DistrhoUIMain_VST.cpp.d
+
+# ---------------------------------------------------------------------------------------------------------------------
diff --git a/dgl/Makefile b/dgl/Makefile
@@ -4,7 +4,7 @@
# Created by falkTX
#
-include ../Makefile.mk
+include ../Makefile.base.mk
# ---------------------------------------------------------------------------------------------------------------------
diff --git a/examples/Info/Makefile b/examples/Info/Makefile
@@ -21,7 +21,7 @@ FILES_UI = \
# --------------------------------------------------------------
# Do some magic
-include ../Makefile.mk
+include ../../Makefile.plugins.mk
# --------------------------------------------------------------
# Enable all possible plugin types
diff --git a/examples/Latency/Makefile b/examples/Latency/Makefile
@@ -18,7 +18,7 @@ FILES_DSP = \
# --------------------------------------------------------------
# Do some magic
-include ../Makefile.mk
+include ../../Makefile.plugins.mk
# --------------------------------------------------------------
# Enable all possible plugin types
diff --git a/examples/Makefile.mk b/examples/Makefile.mk
@@ -1,199 +0,0 @@
-#!/usr/bin/make -f
-# Makefile for DPF Example Plugins #
-# -------------------------------- #
-# Created by falkTX
-#
-
-# NAME, FILES_DSP and FILES_UI have been defined before
-
-include ../../Makefile.mk
-
-ifeq ($(FILES_UI),)
-HAVE_DGL = false
-endif
-
-# ---------------------------------------------------------------------------------------------------------------------
-# Basic setup
-
-TARGET_DIR = ../../bin
-BUILD_DIR = ../../build/$(NAME)
-
-BUILD_C_FLAGS += -I.
-BUILD_CXX_FLAGS += -I. -I../../distrho -I../../dgl
-
-ifeq ($(HAVE_DGL),true)
-BASE_FLAGS += -DHAVE_DGL
-endif
-
-ifeq ($(HAVE_JACK),true)
-BASE_FLAGS += -DHAVE_JACK
-endif
-
-ifeq ($(HAVE_LIBLO),true)
-BASE_FLAGS += -DHAVE_LIBLO
-endif
-
-# ---------------------------------------------------------------------------------------------------------------------
-# Set files to build
-
-OBJS_DSP = $(FILES_DSP:%=$(BUILD_DIR)/%.o)
-OBJS_UI = $(FILES_UI:%=$(BUILD_DIR)/%.o)
-
-# ---------------------------------------------------------------------------------------------------------------------
-# Set plugin binary file targets
-
-jack = $(TARGET_DIR)/$(NAME)$(APP_EXT)
-ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT)
-dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT)
-dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT)
-lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT)
-lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT)
-lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT)
-vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT)
-
-# ---------------------------------------------------------------------------------------------------------------------
-# Handle plugins without UI
-
-ifneq ($(HAVE_DGL),true)
-dssi_ui =
-lv2_ui =
-DGL_LIBS =
-OBJS_UI =
-endif
-
-# ---------------------------------------------------------------------------------------------------------------------
-# all needs to be first
-
-all:
-
-# ---------------------------------------------------------------------------------------------------------------------
-# Common
-
-$(BUILD_DIR)/%.c.o: %.c
- -@mkdir -p $(BUILD_DIR)
- @echo "Compiling $<"
- @$(CC) $< $(BUILD_C_FLAGS) -c -o $@
-
-$(BUILD_DIR)/%.cpp.o: %.cpp
- -@mkdir -p $(BUILD_DIR)
- @echo "Compiling $<"
- @$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
-
-clean:
- rm -rf $(BUILD_DIR)
- rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2
-
-# ---------------------------------------------------------------------------------------------------------------------
-
-$(BUILD_DIR)/DistrhoPluginMain_%.cpp.o: ../../distrho/DistrhoPluginMain.cpp
- -@mkdir -p $(BUILD_DIR)
- @echo "Compiling DistrhoPluginMain.cpp ($*)"
- @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@
-
-$(BUILD_DIR)/DistrhoUIMain_%.cpp.o: ../../distrho/DistrhoUIMain.cpp
- -@mkdir -p $(BUILD_DIR)
- @echo "Compiling DistrhoUIMain.cpp ($*)"
- @$(CXX) $< $(BUILD_CXX_FLAGS) -DDISTRHO_PLUGIN_TARGET_$* -c -o $@
-
-$(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o: ../../distrho/DistrhoPluginMain.cpp
- -@mkdir -p $(BUILD_DIR)
- @echo "Compiling DistrhoPluginMain.cpp (JACK)"
- @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags jack) -DDISTRHO_PLUGIN_TARGET_JACK -c -o $@
-
-$(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o: ../../distrho/DistrhoUIMain.cpp
- -@mkdir -p $(BUILD_DIR)
- @echo "Compiling DistrhoUIMain.cpp (DSSI)"
- @$(CXX) $< $(BUILD_CXX_FLAGS) $(shell pkg-config --cflags liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -c -o $@
-
-# ---------------------------------------------------------------------------------------------------------------------
-# JACK
-
-jack: $(jack)
-
-$(jack): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.o $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.o ../../build/libdgl.a
- -@mkdir -p $(shell dirname $@)
- @echo "Creating JACK standalone for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs jack) -o $@
-
-# ---------------------------------------------------------------------------------------------------------------------
-# LADSPA
-
-ladspa: $(ladspa_dsp)
-
-$(ladspa_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.o
- -@mkdir -p $(shell dirname $@)
- @echo "Creating LADSPA plugin for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@
-
-# ---------------------------------------------------------------------------------------------------------------------
-# DSSI
-
-dssi: $(dssi_dsp) $(dssi_ui)
-dssi_dsp: $(dssi_dsp)
-dssi_ui: $(dssi_ui)
-
-$(dssi_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.o
- -@mkdir -p $(shell dirname $@)
- @echo "Creating DSSI plugin library for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@
-
-$(dssi_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.o ../../build/libdgl.a
- -@mkdir -p $(shell dirname $@)
- @echo "Creating DSSI UI for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --libs liblo) -o $@
-
-# ---------------------------------------------------------------------------------------------------------------------
-# LV2
-
-lv2_one: $(lv2)
-lv2_dsp: $(lv2_dsp)
-lv2_sep: $(lv2_dsp) $(lv2_ui)
-
-$(lv2): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o ../../build/libdgl.a
- -@mkdir -p $(shell dirname $@)
- @echo "Creating LV2 plugin for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@
-
-$(lv2_dsp): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.o
- -@mkdir -p $(shell dirname $@)
- @echo "Creating LV2 plugin library for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(SHARED) -o $@
-
-$(lv2_ui): $(OBJS_UI) $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.o ../../build/libdgl.a
- -@mkdir -p $(shell dirname $@)
- @echo "Creating LV2 plugin UI for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@
-
-# ---------------------------------------------------------------------------------------------------------------------
-# VST
-
-vst: $(vst)
-
-ifeq ($(HAVE_DGL),true)
-$(vst): $(OBJS_DSP) $(OBJS_UI) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o $(BUILD_DIR)/DistrhoUIMain_VST.cpp.o ../../build/libdgl.a
-else
-$(vst): $(OBJS_DSP) $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.o
-endif
- -@mkdir -p $(shell dirname $@)
- @echo "Creating VST plugin for $(NAME)"
- @$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -o $@
-
-# ---------------------------------------------------------------------------------------------------------------------
-
--include $(OBJS_DSP:%.o=%.d)
-ifeq ($(HAVE_DGL),true)
--include $(OBJS_UI:%.o=%.d)
-endif
-
--include $(BUILD_DIR)/DistrhoPluginMain_JACK.cpp.d
--include $(BUILD_DIR)/DistrhoPluginMain_LADSPA.cpp.d
--include $(BUILD_DIR)/DistrhoPluginMain_DSSI.cpp.d
--include $(BUILD_DIR)/DistrhoPluginMain_LV2.cpp.d
--include $(BUILD_DIR)/DistrhoPluginMain_VST.cpp.d
-
--include $(BUILD_DIR)/DistrhoUIMain_JACK.cpp.d
--include $(BUILD_DIR)/DistrhoUIMain_DSSI.cpp.d
--include $(BUILD_DIR)/DistrhoUIMain_LV2.cpp.d
--include $(BUILD_DIR)/DistrhoUIMain_VST.cpp.d
-
-# ---------------------------------------------------------------------------------------------------------------------
diff --git a/examples/Meters/Makefile b/examples/Meters/Makefile
@@ -21,7 +21,7 @@ FILES_UI = \
# --------------------------------------------------------------
# Do some magic
-include ../Makefile.mk
+include ../../Makefile.plugins.mk
# --------------------------------------------------------------
# Enable all possible plugin types
diff --git a/examples/MidiThrough/Makefile b/examples/MidiThrough/Makefile
@@ -18,7 +18,7 @@ FILES_DSP = \
# --------------------------------------------------------------
# Do some magic
-include ../Makefile.mk
+include ../../Makefile.plugins.mk
# --------------------------------------------------------------
# Enable all possible plugin types
diff --git a/examples/Parameters/Makefile b/examples/Parameters/Makefile
@@ -21,7 +21,7 @@ FILES_UI = \
# --------------------------------------------------------------
# Do some magic
-include ../Makefile.mk
+include ../../Makefile.plugins.mk
# --------------------------------------------------------------
# Enable all possible plugin types
diff --git a/examples/States/Makefile b/examples/States/Makefile
@@ -21,7 +21,7 @@ FILES_UI = \
# --------------------------------------------------------------
# Do some magic
-include ../Makefile.mk
+include ../../Makefile.plugins.mk
# --------------------------------------------------------------
# Enable all possible plugin types