diff --git a/Makefile b/Makefile
index 22d0741a1f3c4a1e1991e757950c4baa52fe2887..a8874b21dcd4c567fcffd14a50c42c7c76ec2434 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,10 @@
 # List only the implementation files (*.cxx). For every implementation file
 # there must be a corresponding header file (*.h).
 
+USEWILDCARD = 1
+ifdef USEWILDCARD
+SRC = $(wildcard src/*.cxx)
+else
 SRC  =  src/THcInterface.cxx src/THcParmList.cxx src/THcAnalyzer.cxx \
 	src/THcHallCSpectrometer.cxx \
 	src/THcDetectorMap.cxx \
@@ -35,6 +39,7 @@ SRC  =  src/THcInterface.cxx src/THcParmList.cxx src/THcAnalyzer.cxx \
 	src/THcTrigApp.cxx src/THcTrigDet.cxx src/THcTrigRawHit.cxx \
 	src/THcRawAdcHit.cxx src/THcRawTdcHit.cxx \
 	src/THcDummySpectrometer.cxx
+endif
 
 # Name of your package.
 # The shared library that will be built will get the name lib$(PACKAGE).so
@@ -211,6 +216,11 @@ $(USERDICT).cxx: $(RCHDR) $(HDR) $(LINKDEF)
 	@echo "Generating dictionary $(USERDICT)..."
 	$(ROOTBIN)/rootcint -f $@ -c $(INCLUDES) $(CCDBFLAGS) $^
 
+$(LINKDEF): $(LINKDEF)_preamble $(LINKDEF)_postamble $(SRC)
+	@cat $(LINKDEF)_preamble > $(LINKDEF)
+	@echo $(SRC) | tr ' ' '\n' | sed -e "s|src/|#pragma link C++ class |" | sed -e "s|.cxx|+;|" >> $(LINKDEF)
+	@cat $(LINKDEF)_postamble >> $(LINKDEF)
+
 install:	all
 	cp -p $(USERLIB) $(HOME)/cue/SRC/ana