
# Copyright 2021 Xoriant Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
default: all

all:
	cd collector; make
	cd kafka; make
	cd dmaapadapter; make
	cd influxdb-connector; make
	cd postconfig; make

run:
	docker-compose up -d

stop:
	docker-compose down

clean:
	docker rm `docker ps -a -q -f status=exited`
